批处理文件中的 at 符号(@)是什么?

一个远程熟悉 windows/dos 批处理脚本的人会认出这一行:

@echo off

在很多很多天里,我对 @是如何在批处理的顶部编写 echo off的这种情绪感到高兴,就是这样。

然而,最近我有一个像这样的 无意中发现的台词:

@php foo bar

另一条线是这样的:

@call \\network\folder\batch.bat

这加强了我对 @的怀疑,它不仅仅是 echo模式切换。然而,@没有列在 WindowsXP: 命令行引用 A-Z中,我试图用作参考,因此我不知道如何找到这方面的明确信息:

什么是 @批号,它的术语是什么,它做什么?

77896 次浏览

在符号 -@

@ symbol告诉命令处理器不要太冗长; 只显示命令的输出,而不显示正在执行的命令或与执行相关的任何提示。如果使用它,则在命令的开头之前不需要在“@”和命令之间留出空格。

当“ echo”设置为“ off”时,没有必要使用“@”,因为将“ echo”设置为“ off”会导致此行为变为自动行为。默认情况下,当脚本执行开始时,“ Echo”通常设置为“ on”。这就是通常使用“@echo off”的原因,即关闭 echo 而不显示关闭的动作。

echo verbose
@echo less verbose
pause

放在开头的“ at”符号不仅可以隐藏命令,对于某些命令,它还可以用于附加存储在文本文件中的命令参数。语法是 exe @commands.txt。例如,armclang.exe支持此选项。

简单来说,想象一下,如果我们做 @echo off就会显示出回声,对吧?,嗯与 @你可以使它,所以它不显示它,希望这有帮助!