batch-file - 并行运行 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
.
解决方案
您的问题对确切的预期结果有点模糊。
但是,我假设您想做这样的事情。
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
推荐阅读
- javascript - 如何在纯 javascript 中打开 .csv(或任何扩展名)文件
- deep-learning - YOLO 会在全连接层之前重新缩放锚点吗?没有 ROI pooling 的解决方案是什么?
- r - 如何感谢 R 包(使用 roxygen2)的想法(不是代码)贡献者?
- objective-c - 以编程方式将工具栏按钮添加到 Finder.app (macOS)
- python - 加载 csv 文件 python jupyter
- python - 仅在 pandas 列中的文件名中找到变量数字数据并将数字放在新列中
- blazor - 如何在生产中部署 Blazor 服务器并克服 SignalR 重新连接问题?
- javascript - 无法在 React 中更改字符串的状态
- javascript - 如何使用单击事件从数组中删除对象
- javascript - 使用节点将大数组写入文件