在 Unix 中,我们可以将多个命令放在一行中,如下所示:
$ date ; ls -l ; date
我在Windows中尝试过类似的事情:
> echo %TIME% ; dir ; echo %TIME
但它打印了时间并且不执行命令dir
.
我怎样才能实现这个目标?
Use:
echo %time% & dir & echo %time%
根据记忆,这相当于中的分号分隔符bash
和其他 UNIXy shell。
还有&&
(or ||
),如果第一个命令成功(或失败),则仅执行第二个命令,但单个 & 符号&
这就是您在这里寻找的。
然而,这可能会给您相同的时间,因为环境变量往往是在读取而不是执行时进行评估。
您可以通过打开延迟扩展来解决这个问题:
pax> cmd /v:on /c "echo !time! & ping 127.0.0.1 >nul: & echo !time!"
15:23:36.77
15:23:39.85
这是从命令行需要的。如果您在脚本中执行此操作,则可以使用setlocal
:
@setlocal enableextensions enabledelayedexpansion
@echo off
echo !time! & ping 127.0.0.1 >nul: & echo !time!
endlocal
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)