使用 Unix 时,我可以在命令行提示符下连续运行多个命令:
# command1; command2; command3
甚至可以通过检查退出状态来链接它们:
# command1 && command2 && command3
在 Windows XP 命令提示符下是否也可以实现同样的效果?
我经常需要在 Windows 上运行几个软件构建命令......
答案1
命令提示符下您有几个选项。
&&
正如@barlop 提到的,只要前一个命令成功,就可以使用链接命令。
还有||
,它将在第一个成功执行的命令后停止执行。
最后,可以用括号对命令进行分组()
,如下所示:
C:\>(
echo command 1
echo command 2
)
分组还可以与其他命令一起使用,例如if
或for
,允许执行以下操作:
C:\>for %i in (*.7z) do @(
md "%~ni"
cd "%~ni"
7za.exe x "%~fi"
cd ..
del "%i"
)
答案2
在命令执行程序您可以使用&
用于链接命令(;
例如什)。
echo a & echo b
和运算&&
符||
也有效。
答案3
ntcmds.chm
在概念下提到..“cmd shell 概述”
&& 仅当符号前面的命令成功时,才运行 && 后面的命令
所以你可以
C:\>echo a && echo a
添加
& 比 && 更适合作为答案
来自 ntcmds.chm
& "用于分隔一个命令行上的多个命令。Cmd.exe 先运行第一个命令,然后运行第二个命令。"
&& “仅当符号前面的命令成功时,才运行 && 后面的命令。Cmd.exe 运行第一个命令,然后仅当第一个命令成功完成后才运行第二个命令。”(这是一个布尔短路 AND)
|| “仅当 || 之前的命令失败时才用于运行 || 之后的命令。Cmd.exe 运行第一个命令,然后仅当第一个命令未成功完成(收到大于零的错误代码)时才运行第二个命令。”(这是一个布尔短路或,即给定表达式“A 或 B”,其中 A 和 B 是 TRUE 或 FALSE 的布尔值,它只需要一个为真,所以如果 A 为真,它就不会像 B 那样走得那么远,因为它不需要,以便进行评估)