我創建一個批處理文件,我在用下面的命令麻煩的線路:CMD echo命令只保留最後一個文本
echo Hello & echo.World > Text.txt
每當我做這個命令的輸出只顯示最後一行,像這樣:
世界
但如果我只是做了上面的命令在CMD沒有寫入文件,它完美地出現在命令提示符。我可以完全訪問我的文件,但我仍然無法寫出整個文本。
我創建一個批處理文件,我在用下面的命令麻煩的線路:CMD echo命令只保留最後一個文本
echo Hello & echo.World > Text.txt
每當我做這個命令的輸出只顯示最後一行,像這樣:
世界
但如果我只是做了上面的命令在CMD沒有寫入文件,它完美地出現在命令提示符。我可以完全訪問我的文件,但我仍然無法寫出整個文本。
批量處理中,>
運算符的優先級高於&
運算符,因此您的示例僅將最後一個命令echo.World
重定向到該文件。第一個命令仍在輸出到控制檯。
要重定向多個命令,可以用圓括號括起來。
(echo Hello & echo.World) > Text.txt
在分批&是一個命令分隔符。您可以通過使用兩條單獨的echo
行來產生相同的結果。
回波你好& echo.World> TEXT.TXT
執行作爲兩個獨立的命令,
回波你好 echo.World> TEXT.TXT
這將報告Hello
到控制檯和寫World
到文件中(你沒有提到Hello
出現在控制檯上...)
請注意,>創建一個新文件而>>追加到任何現有的文件(或創建一個新文件),以便
echo Hello > Text.txt
echo.World > Text.txt
將首先寫Hello
到新文件,然後將其覆蓋與World
。
要追加第二行,你需要
echo Hello > Text.txt
echo.World >> Text.txt
,或者在同一行,
echo Hello > Text.txt&echo.World >> Text.txt
一個parenthesised語句序列(又名 「塊」)被認爲是作爲一個複雜的陳述,所以
(echo Hello &echo.World)> Text.txt
會創建一個新文件包含兩條線,而
(echo Hello &echo.World)>> Text.txt
會將兩行附加到任何現有文件。
還要注意,在>之前的尾部空格也將寫入文件。
要非常小心>和>>。如果執行的命令是
echo Hello 1> Text.txt
那麼hello 空間將被寫入該文件。
如果消息空間一個單一的數字被寫入文件終止,那麼好,可能沒什麼就會出現。當我們遇到這種情況時,例如在確定'邏輯設備output will be used. The useful ones here are 1 (standard output) and 2(standard error) so you can redirect errormessages using
2> errorreports.txt`之前緊接在>之前的數字。
如果有這種情況,您可以通過使用
> Text.txt echo Hello 1
克服這一特點