
>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)的命令列字串限制
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/6512.html
標籤:Windows
