如何在命令行同时运行多个命令?

如何在命令行同时运行多个命令?

使用 Unix 时,我可以在命令行提示符下连续运行多个命令:

# command1; command2; command3

甚至可以通过检查退出状态来链接它们:

# command1 && command2 && command3

在 Windows XP 命令提示符下是否也可以实现同样的效果?

我经常需要在 Windows 上运行几个软件构建命令......

答案1

命令提示符下您有几个选项。

&&正如@barlop 提到的,只要前一个命令成功,就可以使用链接命令。

还有||,它将在第一个成功执行的命令后停止执行。

最后,可以用括号对命令进行分组(),如下所示:

C:\>(
echo command 1
echo command 2
)

分组还可以与其他命令一起使用,例如iffor,允许执行以下操作:

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 那样走得那么远,因为它不需要,以便进行评估)

相关内容