Windows CMD輸出文本到文件,不加換行符


Windows CMD輸出文本到文件,不加換行符

echo "Hello" > test.txt

echo " world!" >> test.txt

 

   

正文

平時,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)的命令行字符串限制

 

 

 

 

```

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM