并行启动多个任务,然后在Windows中等待它们?

Nis*_*ant 2 windows batch-file

如何在批处理脚本中并行执行一些任务并等待它们?

command1;

# command3, command4 and command5 should execute in sequence say task1
# command6, command7 and command8 should execute in sequence say task2
# both task1 and task2 should run independently

command3; command4; command5 | command6; command7; command8;

# should execute only after the above parallel tasks are completed

command9;
Run Code Online (Sandbox Code Playgroud)

作为概念验证,我尝试了类似的方法,但是它不起作用:

echo "Starting"
start /wait wait20.bat   
start /wait wait40.bat 
echo "Finishing"
Run Code Online (Sandbox Code Playgroud)

wait20.bat 看起来像:

echo "starting 20 seconds job"
timeout 20
echo "finishing 20 seconds job"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Aac*_*ini 6

我认为这是最简单的方法:

command1

(
   start "task1" cmd /C "command3 & command4 & command5"
   start "task2" cmd /C "command6 & command7 & command8"
) | pause

command9
Run Code Online (Sandbox Code Playgroud)

此答案下面的评论中的更多详细信息。