How do I force the ECHO command to echo? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080403-00/?p=22883
Raymond Chen 2008年04月03日
如何强制执行ECHO命令以进行回显?
简要
ECHO命令用于在命令行打印文本,但存在解析参数的复杂性。要防止ECHO命令解释其参数,在其后加一个点(如`ECHO. ON`),这可以输出文字而不改变ECHO命令的状态。这种设计反映了批处理语言的演变,虽不完美,但为兼容性而存在。
正文
ECHO
这个内置命令,还有比它更简单的吗? 它把你在命令行上输入的任何内容打印出来。 然而,事情并没那么简单。
例如,ECHO
必须小心不要压缩空白,因为人们会这样写:
ECHO Some text
ECHO Indented text
ECHO ---- underlined
当你执行这些命令时,结果最好是:
Some text
Indented text
---- underlined
而不是:
Some text
Indented text
---- underlined
但是,如果你想回显一个空行,或者单词“ON”或“OFF”,或者一个斜杠和一个问号呢?
C:\> ECHO ON C:\> ECHO ECHO is on. C:\> ECHO /? Displays messages, or turns command-echoing on or off. ...
要强制ECHO
命令不解释它的参数,就在“echo”这个词后面立即加一个点:
C:\> ECHO. ONON C:\> ECHO. C:\> ECHO./? /?
这就是当一种语言不是通过设计而是通过演变发展时会发生的事情。 它变得充满了各种奇怪的怪癖,以便在保持与旧行为兼容的同时适应新行为。 实际上没有人喜欢批处理语言;他们只是习惯了它。