>test.txt set /p="Hello" <nul >>test.txt set /p=" world!" <nul 正文 平時,CMD中輸出一個字元串到文本文件,可使用echo,配合輸出重定向實現: echo "line1" > test.txt echo "line2" >> test. ...
>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文件)。
也就是說,我們並沒有使用它設置變數的能力,而是使用了它的提示字元串。
參考文獻