翻译《The Old New Thing》- How do I force the ECHO command to echo?

How do I force the ECHO command to echo? - The Old New Thing (microsoft.com)icon-default.png?t=N7T8https://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.    ON
    ON
C:\> ECHO.
C:\> ECHO./?
/?

        这就是当一种语言不是通过设计而是通过演变发展时会发生的事情。 它变得充满了各种奇怪的怪癖,以便在保持与旧行为兼容的同时适应新行为。 实际上没有人喜欢批处理语言;他们只是习惯了它。

  • 27
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0x0007

可不可奖励我吃只毛嘴鸡 馋😋

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值