【问题标题】:How does the echo command works in batch programmingecho 命令在批处理编程中是如何工作的
【发布时间】:2017-11-19 04:08:54
【问题描述】:

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

【问题讨论】:

  • echo 控制输出。如果您不想看到批处理文件运行的任何命令,您可以调用“echo off”。如果您不想看到命令回显,请在其前面添加“@”。
  • 您可以通过键入命令并在其后加上/? 来了解任何批处理命令的用途和用法 - 在这种情况下,您需要输入echo /?

标签: windows batch-file cmd


【解决方案1】:

Windows CMD 中的 ECHO 命令用于将文本打印到屏幕上,显示命令行的实际设置,这意味着当你这样做时:

@echo off

命令输入之前的 "C:\Users[User]" 行将消失。 您可以通过以下方式恢复它:

@echo on

这里解释了ECHO的所有功能:

  • @echo [on/off](设置命令行设置)

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

  • echo.(在屏幕上打印一个空行)

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

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

希望我能帮到你。

【讨论】:

  • 我想补充一点,@echo ondebug 批处理脚本也很有用,可以在某些东西似乎不起作用时查看发生了什么。
  • 最好使用echo(,正如 dbenham 所说,它始终有效 (stackoverflow.com/a/3123194)。
  • @elzooilogico 是的,仅适用于“命令”应用程序。但是如果你想制作一个 UI,最好使用 echo off ,因为它更舒适、更干净。
  • 是的,总是在任何脚本的顶部写上@echo off,但在开发时,将on 转至有问题的代码部分上方以查看命令扩展会很有帮助> 和它的输出。当然,一旦修正了错误或错字,就必须将其删除。
【解决方案2】:

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

echo 命令有三种模式:

  1. 当在空格后使用某些参数调用时,它将输出参数。
  2. 当调用 echo.(没有空格)时,它只会输出一个空行。
  3. 当仅使用参数 on 或 off 调用时,它控制在命令执行时打印命令的行为。*

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

将两者结合起来,批处理文件开头的@echo off 会关闭回显,而不会回显自身。

(* 我不确定如何输出文本“on”或“off”,但我怀疑在文本周围使用引号会改变行为。)

【讨论】:

  • 在想回显 just 单词 offon (即,不是一部分)的可能不寻常的情况下任何其他字符串),事实证明echo.offecho.on 可以解决问题。
  • @JeffZeitlin,它的工作原理与echo. "." 相同。不是空格字符,因此它不会将echo.on 解析为echo on 命令。接下来,这个技巧利用了echo 命令如何假定参数字符串中的第一个字符是要跳过的空格,除非在这种情况下它跳过了“.”。
  • 非常有趣!我没有意识到回声。 form 后面可以有更多文本(也不一定是句号,正如 Kappa 在对不同答案的评论中指出的那样)。引号只是在输出中回显,所以猜测没有用。
【解决方案3】:

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

命令前的@表示运行时不打印该命令。

off 参数告诉脚本不输出任何其他命令,但是如果没有 @ 将输出回显关闭(因为回显尚未关闭)

on 参数重新打开命令回显。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 2015-11-08
    • 1970-01-01
    • 2014-01-01
    • 2020-10-01
    • 2012-03-24
    • 2012-04-18
    相关资源
    最近更新 更多