如何在Windows cmd提示符下并行运行多个命令?

Vil*_*oja 7 parallel-processing concurrency cmd

我知道可以在 Windows CMD 中一行运行两个命令,如下所示:

dir & echo foo
Run Code Online (Sandbox Code Playgroud)

但是如何才能并行运行两个命令呢?我也知道可以通过使用 START 来实现这一目标。但随后您必须将这些命令放入批处理文件中。我想从命令行本身并行启动它们。

我想要实现的是这样的:

set NODE_ENV=development&& nodemon -e js,jsx,cjsx,css,scss,html,coffee --watch ./app/ server/server.js & set NODE_ENV=development&& node server/hotLoadServer.js
Run Code Online (Sandbox Code Playgroud)

如果我在单独的窗口中单独运行命令,它们就可以完美工作。但我似乎无法让它们在一个命令提示符下作为单行运行。发生的情况是,第一个运行,第二个没有运行。第一个将保持打开状态,第二个永远不会执行。

Nin*_*liu 6

这会并行执行两个任务并为每个任务打开一个窗口:

# powershell
start ping google.com; start ping example.com
# cmd
start ping google.com & start ping example.com
Run Code Online (Sandbox Code Playgroud)

其作用相同,但 /B 选项会阻止打开任何新窗口(在 cmd 中):

start /B ping google.com & start ping example.com
Run Code Online (Sandbox Code Playgroud)

我在 powershell 中没有找到任何直接等效项,尽管在 powershell 中启动它可以解决问题:

cmd /C 'start /B ping google.com & start /B ping example.com'
Run Code Online (Sandbox Code Playgroud)

另请注意,powershell 的Start-Job cmdlet 允许用户启动后台作业。


San*_*ini 0

您可以在一个 cmd 会话中运行并行线程。使用带有 /c 参数的 'cmd' 命令,它将执行字符串指定的命令,然后停止。例如 cmd /c echo 完成

更多参考:https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx ?mfr=true