2015-11-30 75 views
4

我創建一個批處理文件,我在用下面的命令麻煩的線路:CMD echo命令只保留最後一個文本

echo Hello & echo.World > Text.txt 

每當我做這個命令的輸出只顯示最後一行,像這樣:

世界

但如果我只是做了上面的命令在CMD沒有寫入文件,它完美地出現在命令提示符。我可以完全訪問我的文件,但我仍然無法寫出整個文本。

回答

6

批量處理中,>運算符的優先級高於&運算符,因此您的示例僅將最後一個命令echo.World重定向到該文件。第一個命令仍在輸出到控制檯。

要重定向多個命令,可以用圓括號括起來。

(echo Hello & echo.World) > Text.txt 
3

在分批&是一個命令分隔符。您可以通過使用兩條單​​獨的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 
克服這一特點
相關問題