繁体   English   中英

Windows 批处理脚本中的“@”是什么意思

[英]What does “@” mean in Windows batch scripts

我看到@在这种情况下使用:

@echo off

@echo start eclipse.exe

@这里是什么意思?

这意味着不输出相应的命令。 比较以下两个批处理文件:

@echo foo

echo foo

前者只有foo作为输出,而后者打印

H:\Stuff>echo foo 
foo

(至少在这里)。 可以看出,运行的命令也是可见的。

echo off将为完整的批处理文件关闭此功能。 但是, echo off调用本身仍然可见。 这就是为什么您会在批处理文件的开头看到@echo off 关闭命令回显不要回显关闭它的命令。

在更复杂的批处理文件中删除该行(或将其注释掉)通常是一个有用的调试工具,因为您可以看到在错误消息之前运行的内容。

这意味着“不要将命令回显到标准输出”。

比较奇怪的是,

echo off

会将echo off发送到输出! 所以,

@echo off

将此自动回显行为设置为关闭 - 并在所有未来命令中停止它。

来源: http : //www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx? mfr= true

默认情况下,批处理文件将在运行时显示其命令。 @echo off 的第一个命令的目的是关闭此显示。 命令“echo off”关闭整个脚本的显示,除了“echo off”命令本身。 前面的“at”符号“@”使命令也适用于自身。

@禁用该命令的回显。 没有它, echo start eclipse.exe行将打印预期的start eclipse.exeecho start eclipse.exe行。

echo off关闭默认命令回显。

所以@echo off静默关闭命令回显,只输出想要写入的批处理作者实际写入。

它继承了 DOS 的含义。 @

在 DOS 3.3 及更高版本中,隐藏批处理命令的回显。 该命令生成的任何输出都会被回显。

没有它,您可以使用echo off命令关闭命令回显,但该命令将首先被回显。

包含 @ 的另一个有用时间是在命令行中使用FOR时。 例如:

FOR %F IN (*.*) DO ECHO %F

上一页线显示每个文件:在命令提示符中, ECHO命令,结果ECHO命令。 这条路:

FOR %F IN (*.*) DO @ECHO %F

只显示ECHO命令的结果。

在批处理文件中:

1 @echo off(solo)=>什么都不输出在此处输入图片说明

2 echo off(solo)=> 命令行显示“echo off”

在此处输入图片说明

3 回声关闭(然后回声)=> 在此处输入图片说明

4 @echo off(然后回声)=> 在此处输入图片说明

看,echo off(solo),表示命令行中没有输出,但本身显示; @echo off(solo),表示命令行没有输出,本身也没有;

您可以像这样在“scriptBlock”中包含 @:

@(
  echo don't echoed
  hostname
)
echo echoed

尤其不要那样做:)

for %%a in ("@") do %%~aecho %%~a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM