"@"在Windows批处理脚本中的含义是什么

Bai*_*ang 120 windows batch-file

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

@echo off

@echo start eclipse.exe
Run Code Online (Sandbox Code Playgroud)

@这里的意思是什么?

Joe*_*oey 178

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

@echo foo
Run Code Online (Sandbox Code Playgroud)

echo foo
Run Code Online (Sandbox Code Playgroud)

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

H:\Stuff>echo foo 
foo
Run Code Online (Sandbox Code Playgroud)

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

echo off将关闭整个批处理文件.但是,echo off呼叫本身仍然可见.这就是您@echo off在批处理文件开头看到的原因.关闭命令回显,不要回显关闭命令.

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


Jer*_*Gee 19

这意味着"不要将命令回显到标准输出".

相当奇怪的是,

echo off
Run Code Online (Sandbox Code Playgroud)

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

@echo off
Run Code Online (Sandbox Code Playgroud)

将此自动回声行为设置为关闭 - 并为将来的所有命令停止它.

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


sar*_*old 11

所述@禁用回声为一个命令.没有它,echo start eclipse.exe行会同时打印预期start eclipse.exe echo start eclipse.exe行.

echo off关通过默认命令呼应圈.

因此@echo off默默地关闭命令回显,并且只输出要写入的批处理作者实际写入.


ter*_*ian 11

在批处理文件中:

\n

1 @echo off(solo)=>什么也不输出\n在此输入图像描述

\n

2 echo off(solo)=> \xe2\x80\x9cecho off\xe2\x80\x9d 在命令行中显示

\n

在此输入图像描述

\n

3 回显关闭(然后回显某些内容)=>\n在此输入图像描述

\n

4 @echo off(然后回显一些东西)=>\n在此输入图像描述

\n

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

\n


Dam*_*ver 8

它继承了DOS的含义.@:

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

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


Muh*_*han 7

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

  • 对我来说,这更容易理解。 (4认同)
  • 与其他5年的帖子一样,我在您的帖子中看不到更多或更好的信息。 (3认同)

Aac*_*ini 5

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

FOR %F IN (*.*) DO ECHO %F
Run Code Online (Sandbox Code Playgroud)

每个文件的上一行显示:命令提示符,ECHO命令和ECHO命令结果.这条路:

FOR %F IN (*.*) DO @ECHO %F
Run Code Online (Sandbox Code Playgroud)

ECHO显示命令的结果.

  • 我贬低了,因为这不是他的问题的答案.你甚至不解释@的作用.如果你有很酷的用法例子,那很好,但它仍然不能解决他的问题.你可能也不知道我也用答案解释了它的作用和来源.我不是无缘无故地投票.你的"答案"不是答案.这是一个有点相关的陈述. (5认同)