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

相關文章
相關標籤/搜索