为什么我们使用@Echo off / on而不仅仅是Echo off / on?

时间:2014-09-22 21:00:37

标签: windows batch-file cmd

我想知道如上所述为什么我们使用@Echo off / on而不是Echo off / on。这有什么原因或只是为了可见性?根据这一点,它似乎无法在视觉上产生影响:

C:\Users\Jack> Echo Hello World!!!
Hello World!!!

C:\Users\Jack> Echo off
Echo Hello World!!!
Hello World!!!
Echo on

C:\Users\Jack> Echo Hello World!!!
Hello World!!!

C:\Users\Jack> @Echo off
Echo Hello World!!!
Hello World!!!
@Echo on

C:\Users\Jack> Echo Hello World!!!
Hello World!!!

3 个答案:

答案 0 :(得分:4)

@从输出中隐藏命令本身。如果您不使用它,那么就无法完全从批处理文件中删除命令回声,您总是将第一行作为输出。

答案 1 :(得分:2)

从批处理文件中,如果当前处于回显状态,则@echo off将不会被回显,而echo off将会:

C:\working\test>type test.cmd
echo off
echo hello

C:\working\test>test

C:\working\test>echo off
hello

如果当前关闭回声,则@echo onecho on之间没有区别;前者可能是出于习惯而使用,或者因为程序员不希望行为取决于当前是否开启回声。

答案 2 :(得分:-1)

我的答案

使用@隐藏命令 例如:

echo off
echo hello
pause

结果:

C:\Users\Will Smith Yaaaa\Desktop>echo off
hello
Press any key to continue . . .

相反,如果您使用@echo off: 程序:

@echo off
echo hello
pause

结果:

hello
Press any key to continue . . .

实际上可以用@code代替:

@echo hello
@pause

结果:

hello
Press any key to continue . . .