在Unix中,我们可以把多个命令在一行是这样的:在Windows批处理文件一行多个命令
$ date ; ls -l ; date
我想在Windows类似的事情:
> echo %TIME% ; dir ; echo %TIME
但它打印时间并且不执行命令dir
。
我该如何做到这一点?
在Unix中,我们可以把多个命令在一行是这样的:在Windows批处理文件一行多个命令
$ date ; ls -l ; date
我想在Windows类似的事情:
> echo %TIME% ; dir ; echo %TIME
但它打印时间并且不执行命令dir
。
我该如何做到这一点?
使用:
echo %time% & dir & echo %time%
这一点,从存储器,相当于分号分隔在bash
等UNIXy壳。
还有&&
(或||
)只执行,如果第一个成功(或失败)的第二个命令,但单符号&
是你在找什么在这里。
但是,由于环境变量往往会在读取而不是执行时进行评估,因此很可能会给您同样的时间。
你可以避开这个问题通过打开延迟扩展:
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
的可能的复制[?如何在Windows CMD一条线运行两个命令(http://stackoverflow.com/questions/ 8055371/how-to-run-two-command-in-one-line-in-windows-cmd) – IvanRF