首页 > 解决方案 > 并行运行 bat 文件并等待它们完成后再运行新的 bat 文件集

问题描述

我有一系列要并行运行的 bat 文件,例如:

start program1_1.bat
start program1_2.bat
start program1_3.bat
wait until program1 finished then
start program2_1.bat
start program2_2.bat
start program2_3.bat
wait until program2 finished then
...

到目前为止,我尝试过的是这个功能

:waitForFinish
set counter=0
for /f %%i in ('tasklist /NH /FI "Imagename eq cmd.exe') do set /a counter=counter+1
if counter GTR 2 Goto waitForFinish

但它只是启动了前 3 个 bat 文件并停止了......我该如何解决这个问题?谢谢,

编辑:这是program1_i.bat文件的内容:

program1.exe input_i.txt

它将为每个输入文件运行 program1.exe。对于program2_i.bat.

标签: batch-file

解决方案


您的问题对确切的预期结果有点模糊。

但是,我假设您想做这样的事情。

start /wait program1_1.bat | start /wait program1_2.bat | start /wait program1_3.bat
start /wait program2_1.bat | start /wait program2_2.bat | start /wait program2_3.bat

单管道分隔符让我们并行启动前三个命令,只有在前三个命令全部完成后才启动接下来的三个命令,因为接下来的 3 个命令在下batch一行使用start /wait


推荐阅读