批处理文件中的at符号(@)是什么,它有什么作用?


101

一个熟悉Windows / Dos批处理脚本的人会认识到这一行:

@echo off

许多天来,我对这样的感觉感到很满意,那@就是echo off在批处理的顶部应该写的就是这样。

然而,最近我就翻过这样一行:

@php foo bar

另一行是这样的:

@call \\network\folder\batch.bat

这使我@更加怀疑,不仅仅是echo模式切换。但是@Windows XP:命令行参考AZ中没有列出,我尝试将其用作参考,因此我不确定如何找到有关此的确定信息:

什么是@批量的标志,什么是它的术语,它有什么作用?


3
没有添加到ismail答案中的任何内容。但是,仅供以后参考,答案包含在命令Remarks部分下指示的“命令行参考AZ”文档中echo
MC ND

2
@MCND我明白了,谢谢!不知道它是特定于回声的...好吧,我想我误解了echo批处理的重要性。这是echo#remarks的链接。
n611x007 2014年

2
我听说它被称为“静噪”,但对此我只有传闻证据。
RustyTheBoyRobot 2014年

Answers:


152

在符号-@

@ symbol命令告诉命令处理器不那么冗长;仅显示命令的输出,而不显示命令的执行或与执行相关的任何提示。使用时,它会放在命令开头,不需要在“ @”和命令之间留空格。

当“ echo”设置为“ off”时,无需使用“ @”,因为将“ echo”设置为“ off”会使此行为变为自动。开始执行脚本时,通常默认情况下将“ Echo”设置为“ on”。这就是通常使用“ @echo off”来关闭回声而不显示关闭行为的原因。

echo verbose
@echo less verbose
pause

3
接受的现场解释这一个 ... 与执行相关的任何提示,并说这样(的冗长)命令处理器,并讲述空间。:)不错的测试批次!
n611x007 2014年

7
显然,这对每个人都是显而易见的,但我不知道这仅在从.bat文件执行时才有效,即,它不能直接从命令行运行。
doABarrelRoll721 '02

1
When "echo" is set to "off" it is not necessary to use "@" because setting "echo" to "off" causes this behavior to become automatic. 这是真的。我还发现,这可能会导致不良的副作用。例如,由于某种原因使用@copy以下clip < file.txt & pause命令会导致剪贴板复制文本1 file copied
dgo

不好的是我不能在上面写正式文件!
罗伯特

-1

放在开头的“ at”符号不仅会隐藏命令,还可以用来附加存储在文本文件中的命令参数。语法是exe @ commands(如果我没记错的话)


3
不,如果您尝试执行类似的操作myExe@myCommands失败is not recognized as an internal or external command
jeb

@jeb,在@符号周围放置空格会发生什么?我无法使其正常工作,但我已经看到它已用于批处理文件中……
jdk1.0,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.