我们常常会在一些批处理文件中看到@echo off这个命令,那他究竟有什么作用,要想知道这个命令,我们首先得知道echo这个命令的作用,这个命令叫做“回显”,就是把这条命令后的内容显示到控制台上,接下来我们来看一下@echo off命令的作用。

我们来新建一个文件,文件就命名为test_echooff.bat,然后在文件中编写如下内容:

@echo off
echo 这是测试内容的第1行
 echo 这是测试内容的第2行
 echo 这是测试内容的第3行
 echo endpause
 这个批处理文件双击运行的结果如下:
  这是测试内容的第1行
   这是测试内容的第2行
   这是测试内容的第3行
   end
   请按任意键继续…修改文件内容,将其中的@ 符号去掉,内容如下:
 echo off
echo 这是测试内容的第1行
 echo 这是测试内容的第2行
 echo 这是测试内容的第3行
 echo endpause
 双击运行修改后的这个批处理文件的结果如下:
  F:\batTool>echo off
   这是测试内容的第1行
   这是测试内容的第2行
   这是测试内容的第3行
   end
   请按任意键继续…继续修改文件内容,将第一条命令注释掉,内容如下:
 ::echo off
echo 这是测试内容的第1行
 echo 这是测试内容的第2行
 echo 这是测试内容的第3行
 echo endpause
 双击运行最后修改的这个批处理文件的结果如下:
 
  F:\batTool>echo 这是测试内容的第1行
   这是测试内容的第1行
  
   F:\batTool>echo 这是测试内容的第2行
   这是测试内容的第2行
  
   F:\batTool>echo 这是测试内容的第3行
   这是测试内容的第3行
  
   F:\batTool>echo end
   end
  
   F:\batTool>pause
   请按任意键继续…

总结

@echo off表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显。而echo off命令则表示关闭其他所有命令(不包括本身这条命令)的回显,@的作用就是关闭紧跟其后的一条命令的回显,关于上述例子应该表现的很清楚了,不过还有几点需要解释一下:

pause也是一条命令,作用就是使程序暂停,也就是输出“请按任意键继续…”的原因。
::是批处理文件中一种注释语句的方式,其与rem命令的区别我们后续再说。
@echo off执行以后,后面所有的命令均不显示,包括本条命令。
echo off执行以后,后面所有的命令均不显示,但本条命令是显示的。