2017-06-16 85 views
0

我已经开始学习批处理编程,以便在Windows机器中更深入一些。在互联网上,我看到一些带有回声的命令,如“@echo off”“on”,还有:“echo”。但我不知道他们在做什么。如果有人能解释我的echo命令的功能,请回答我。echo命令如何在批处理编程中工作

+1

回声控制输出。如果你不想看到任何批处理文件运行的命令,你可以调用“echo off”。如果你不想看到命令自己回显,你可以在它之前加上'@'。 – Tamar

+0

你可以通过键入命令并在'/?'后面找到任何批处理命令的用途和用法 - 在这种情况下,你应该输入'echo /?' – SomethingDark

回答

3
在Windows CMD

echo命令用于文本打印输出到屏幕上,显示的命令行的实际设置,这意味着当你这样做:

@echo off 

“C:\ Users [用户]”行之前您的命令输入将会消失。 可以与还原:

@echo on 

这里ECHO的所有功能解释:

  • @echo [ON/OFF](设置命令行设置)

  • echo [text](将文字打印到屏幕上)

  • 回声。(打印一个空行到屏幕)

  • 回声(显示命令行的当前设置)

  • 回声/?(显示ECHO命令的帮助)

我希望我能够帮助你。

+1

我希望增加'@echo on'对调试批处理脚本也很有用,以便在某些事情看起来不起作用时查看发生了什么。 – elzooilogico

+3

最好使用'echo(',就像dbenham所说的那样它总是起作用(https://stackoverflow.com/a/3123194)。 – Kappa

+0

@elzooilogico是的,只适用于“命令”应用程序。但是如果你想创建一个UI ,如果你使用回声更好,因为它更舒适,更干净。 –

2

部分的答案是这样的:What does "@" mean in Windows batch scripts

命令手段之前,@运行时,不要打印命令。

off参数告诉脚本不输出任何其他命令,但是不将@输出的回波关闭(自呼应尚未关闭)

的上参数将命令回显上。

任何其他参数都只是回显到显示器

2

默认情况下,在批处理文件中执行的每个命令也会回显到输出 - 不仅仅是命令的输出,而是命令本身。

echo命令有三种模式:

  1. 当与一些参数调用的空间后,将输出的参数。
  2. 当调用echo.(无空格)时,它将输出一个空行。
  3. 当刚打开或关闭的参数调用,它控制打印命令,他们执行的行为。*

因此,echo off命令关闭在批处理文件的开头输出。但是,该命令本身在它有机会关闭回显之前仍然有回应。 @符号的作用是仅关闭当前命令的输出。

将两者合并,在批处理文件开始时,@echo off会关闭回声而不会自动回显。

(*我不知道我到底如何“开”或“关”输出的文本,但怀疑周围使用文本引号将改变行为。)

+3

在大概不寻常的情况下,想要回显_just_单词** off **或** on **(即不是任何其他字符串的一部分),事实证明'echo.off'和'echo.on'有效。 –

+3

@JeffZeitlin,它的工作原理与echo相同。 “。”不是空白字符,所以它不会将'echo.on'解析为'echo on'命令。利用“echo”命令假定参数字符串中的第一个字符是空白区域以跳过,除非在这种情况下它跳过了“。”。 – eryksun

+0

非常有趣!我没有意识到这个回声。形式可以有更多的文字(也不一定是一段时间,因为卡帕指出了对不同答案的评论)。行情只是回应输出,所以猜测是不好的。 – Harun