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



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

 

正文

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

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

 

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

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

 

 

 

 

 

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

 

 

我的解决方案:

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

 

原理:

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

参考文献

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

 



 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值