Windows CMD 输出文本到文件,不加换行符



>test.txt set /p="Hello" <nul
>>test.txt set /p=" world!" <nul

 

正文

平时,CMD中输出一个字符串到文本文件,可以使用echo,配合输出重定向实现:spa

echo "line1" > test.txt
echo "line2" >> test.txt

 

若是要输出的文本很短,这样就能够了。
可是,CMD命令行的字符串长度最长为2047或8191个字符[1],若是咱们要输出的文件超出这个限制要怎么办呢?
个人思路是,拆分红多个字符串去输出:命令行

echo "Hello" > test.txt
echo " world!" >> test.txt

 

 

 

 

 

这样有一个问题,echo会自动添加一个换行符和回车符,这并非我想要的。
我但愿的结果是这样:code

 

 

个人解决方案:blog

>test.txt set /p="Hello" <nul
>>test.txt set /p=" world!" <nul

 

原理:字符串

开头的>和>>是把输出文件重定向和追加到test.txt。
最后的<null是把输入重定向为nul,也就是不输入。
重头戏是中间的 SET /P variable=[promptString] 命令,能够从标准输入输入一个值,保存获得变量variable。
可选的[promptString]是一个输出到标准输出的提示字符串(本来是输出到命令行窗口,但被咱们重定位到了test.txt文件)。
也就是说,咱们并无使用它设置变量的能力,而是使用了它的提示字符串。get

参考文献

[1] 命令提示符(cmd.exe)的命令行字符串限制cmd

相关文章
相关标签/搜索