什么是@&引用;Windows批处理脚本中的平均值

什么是@&引用;Windows批处理脚本中的平均值,windows,batch-file,Windows,Batch File,我看到@在这样的上下文中使用: @echo off @echo start eclipse.exe 这里的@是什么意思?表示不输出相应的命令。比较以下两个批处理文件: @echo foo 及 前者只有foo作为输出,而后者则打印 H:\Stuff>echo foo foo (至少在这里)。可以看出,运行的命令也是可见的 echo off将为完整的批处理文件关闭此选项。但是,echo off调用本身仍然可见。这就是为什么在批处理文件的开头会看到@echo off。关闭命令回显,不回

我看到
@
在这样的上下文中使用:

@echo off

@echo start eclipse.exe

这里的
@
是什么意思?

表示不输出相应的命令。比较以下两个批处理文件:

@echo foo

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

H:\Stuff>echo foo 
foo
(至少在这里)。可以看出,运行的命令也是可见的

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


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

它继承了DOS的含义:

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


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

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

默认情况下,
echo off
关闭命令回显

因此,
@echo off
会自动关闭命令回显,并且只有要编写的批处理作者的输出才被实际写入。

它的意思是“不要将命令回显到标准输出”

很奇怪,

echo off
将向输出发送
回音关闭
!所以

@echo off
将此自动回显行为设置为关闭,并在将来的所有命令中停止它


来源:

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

FOR %F IN (*.*) DO ECHO %F
前一行显示每个文件:命令提示符、
ECHO
命令和
ECHO
命令的结果。这样:

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

只显示ECHO命令的结果。

您可以在“脚本块”中包含@,如下所示:

@(
  echo don't echoed
  hostname
)
echo echoed
尤其是不要这样做:)


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

在批处理文件中:

1@echo off(solo)=>无输出

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

3回显关闭(然后回显内容)=>

4@echo off(然后echo某物)=>

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

@PsychoData:有趣的是,你否决了唯一一个提供有用信息的答案,而其他4个答案,同时,已经以同样的方式回答了这个问题……我否决了,因为这不是他的问题的答案。你甚至没有解释@的作用。如果你有很酷的用法示例,很好,但这仍然不能回答他的问题。你可能还不知道,我还用打赌解释了答案的作用和来源,并对答案进行了优化。我不是无缘无故地投了反对票。你的“答案”不是答案。这是一个有点相关的声明。我在你的帖子中看不到更多或更好的信息,就像在其他5年前的帖子中一样。对我来说,这更容易理解。链接现在断开了。请注意:@sign in a script会抑制相应命令的输出。
@(
  echo don't echoed
  hostname
)
echo echoed
for %%a in ("@") do %%~aecho %%~a