在Windows批处理脚本中,“@”是什么意思?
我看到@被用在这样的背景下: 
 @echo off @echo start eclipse.exe 
  @在这里意味着什么? 
这意味着不输出相应的命令。 比较以下两个batch file:
 @echo foo 
和
 echo foo 
 前者只有foo作为输出而后者打印 
 H:\Stuff>echo foo foo 
(至less在这里)。 可以看出,运行的命令也是可见的。
  echo off将closures完整的batch file。 但是,呼叫回拨本身仍然是可见的。 这就是为什么您在batch file的开头看到@echo off原因。 closures命令回显,不要回显命令closures。 
删除该行(或将其注释掉)在更复杂的batch file中通常是有用的debugging工具,因为您可以看到在出现错误消息之前运行的内容。
这意味着“不要将命令回显到标准输出”。
奇怪的是,
 echo off 
 会发送echo off到输出! 所以, 
 @echo off 
设置这个自动回应的行为 – 并停止所有未来的命令。
资料来源: http : //www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx? mfr= true
  @禁用该命令的回显。 没有它, echo start eclipse.exe行将打印预期的start eclipse.exe 和 echo start eclipse.exe行。 
  echo offclosures默认命令回显。 
 所以@echo off默默closures命令回显,只输出想要写入的批处理作者实际写入。 
它inheritance了DOS的含义。 @ :
在DOS版本3.3和更高版本中,隐藏批处理命令的回显。 该命令生成的任何输出都被回显。
 没有它,你可以使用echo off命令closures命令回显,但是该命令会首先被回显。 
 包含@的另一个有用时间是在命令行中使用FOR时的情况。 例如: 
 FOR %F IN (*.*) DO ECHO %F 
 上一行显示每个文件 :命令提示符, ECHO命令和ECHO命令的结果。 这条路: 
 FOR %F IN (*.*) DO @ECHO %F 
 只显示ECHO命令的结果。 
你可以像这样在一个'scriptBlock'中包含@
 @( echo don't echoed hostname ) echo echoed 
特别是不要这样做:)
 for %%a in ("@") do %%~aecho %%~a 
默认情况下,batch file将在运行时显示其命令。 @echoclosures的第一个命令的目的是closures这个显示。 “echo off”命令会closures整个脚本的显示,除了“echo off”命令本身。 前面的“at”符号使命令也适用于自己。