cd …
这个命令基本都知道:返回上一层目录,这将作为以后测试命令是否起作用的指令。
看例子:

结果:

PS: 可以不用空格,直接用cd…
echo
基本功能演示
基本功能:控制命令是否回显,屏幕原样返回文本。
先看一个例子:

结果:

从上面我们可以看到三点:
- bat命令本身默认会显示在命令行中,本例中的“echo hello world”和上例中的“cd …”都证明了这一点,即bat脚本指令本身默认会“回显”,这和echo命令本身没有任何关系(由于echo的功能原因,这一点要理清)
- echo将后面紧跟着的内容全部视为字符串,并会原样打印出该字符串(类似C中printf效果),即使echo后面紧跟着的是正常的指令(如图中的cd …),echo也只是将其作为普通的字符串处理,会打印但并不会执行。
echo off
上面我们已经看到——bat脚本指令本身默认会“回显”,那如果我们不想命令本身回显,只想看到命令执行的效果怎么办,例如现在我只想屏幕打印出
hello world
不要“echo hello world”
好,看下面代码:

效果:

看到没有,echo off之后,代码中的:
echo hello world
echo pause
都没有在命令行中显示,全是直接显示了命令的效果:直接打印“hello world”和进行暂停。
实际上,如果后面有1000行代码,在命令行中都会显示了,因为这就是echo off的作用——关闭命令行的指令回显。
echo on
相应地,如果想重新开启指令回显,则需要使用echo on重新打开,这很好理解。
但是有个有趣的小细节,再看一下echo off:

效果:

echo off命令本身还是进行回显了,这很好理解,echo off之前系统是默认指令回显的,所以echo off回显了,其生效时间是在这条指令执行之后,所以之后的所有命令都不进行回显。
那么下面这个例子:

效果:

echo on 本身没有回显,这也好理解,在echo on之前,回显是关闭的(echo off),一直到echo on生效时间是在本条指令之后,故本身还是“隐身”状态。
用echo来查看echo开关状态
单独echo命令可以查看echo当前的开关状态:

结果:

如果连echo off都不想看到呢 —— @
这是使用echo off的效果:

怎么实现这样的效果:

这就用到另外一个手动关闭回显的指令 —— @,简单来说,在任何指令之前加上@,那么这条指令就不会进行回显,示例:

结果:

对比一下直接“cd …的效果”:

那么上面的需求就很好实现了 —— 用@关闭echo off指令本身的回显即可:

效果:

当然,也可以直接通过手动@所有的指令,让所有指令关闭回显:

效果:

echo和@的适用场合
通过上面也可以看出,echo off一旦关闭,则后续所有命令都会停止回显,这适用于完整的代码屏蔽,而@适用于echo on的状态下对于个别命令的隐身,当然,对于echo off本身的隐身还是挺有用处(强迫症患者),比较灵活。
当然,这里提一个@ + echo的妙用 —— 提示信息。

效果:

本文深入解析批处理命令的使用技巧,包括如何控制命令回显、使用echo和@符号实现指令隐身,以及如何检查echo的当前状态。通过实例展示了echooff和echoon的使用场景,以及如何利用@符号对特定命令进行回显关闭。
242

被折叠的 条评论
为什么被折叠?



