2011-12-13 201 views

回答

130

這意味着不輸出相應的命令。比較以下兩個批處理文件:

@echo foo 

echo foo 

前者只有foo作爲輸出而後者則打印

H:\Stuff>echo foo 
foo 

(在這裏,至少)。可以看出,運行的命令也是可見的。

echo off將關閉整個批處理文件。但是,echo off調用本身仍然可見。這就是爲什麼你在批處理文件的開頭看到@echo off。關閉命令回顯不會回顯命令將其關閉。

在更復雜的批處理文件中刪除該行(或將其註釋掉)通常是一個有用的調試工具,因爲您可以看到在出現錯誤消息之前運行的內容。

6

它繼承了DOS的含義。 @

在DOS版本3.3及更高版本中,隱藏批處理命令的回顯。該命令生成的任何輸出都會被回顯。

沒有它,您可以使用echo off命令關閉命令回顯功能,但該命令將首先回顯。

9

@禁用該命令的回顯。沒有它,echo start eclipse.exe行將打印預期的start eclipse.exeecho start eclipse.exe行。

echo off關閉默認命令回顯。

因此@echo off默認關閉命令回顯,並且只輸出要寫入的批處理作者實際上被寫入。

5

另一個有用的時間,包括@是當你在命令行中使用FOR。例如:

FOR %F IN (*.*) DO ECHO %F 

上一行顯示每個文件:命令提示,所述命令ECHO,和ECHO命令的結果。這樣:

FOR %F IN (*.*) DO @ECHO %F 

只顯示ECHO命令的結果。

+2

沒有答案。 – PsychoData

+0

@PsychoData:有趣的是,你downvoted唯一的答案,提供了一個有用的信息,其他4個答案,而同時,已經以相同的方式回答了問題... – Aacini

+0

我downvoted,因爲它不是一個回答他的問題。你甚至不會對@做什麼解釋。如果你有很好的用法例子,但它仍然不是他的問題的答案。你也許不知道我也用投注解釋了它的作用以及它來自哪裏,從而提出了答案。我不是無緣無故地投降了。你的「答案」不是答案。這是一個有點相關的陳述。 – PsychoData

2

可以包括@在這樣的「腳本塊」:

@(
    echo don't echoed 
    hostname 
) 
echo echoed 

,特別是不這樣做:)

for %%a in ("@") do %%~aecho %%~a 
2

默認情況下,一個批處理文件將顯示它的命令,因爲它運行。這個第一個命令的目的是@echo off就是關掉這個顯示。命令「echo off」會關閉整個腳本的顯示,但「echo off」命令本身除外。 前面的「at」符號使得該命令也適用於自身。

+2

我的帖子中看不到更多或更好的信息,就像其他5年前的帖子一樣。 – jeb

+0

你使你的努力如此之大。可憐 –