Batch-File

cmd - 在所有其他並發批處理文件完成後執行批處理文件

  • September 2, 2021

我有一個簡單的批處理文件,它呼叫其他批處理文件,它看起來像這樣:

start /b run_part1.bat
start /b run_part2.bat
start /b run_part3.bat
start /b run_part4.bat

run_last.bat  // fires immediately, how to make this line wait until above finishes?

使用 /b 前 4 個文件將同時執行。全部將在 1.5 小時內完成。

在所有四個文件完成後,我需要另一個腳本來進行一些清理。但是 run_last.bat 不會等待前 4 個文件,它會與前 4 個文件同時呼叫。

有沒有辦法實現它?

謝謝你。

停止使用過時的命令提示符並使用 Powershell。您可以使用ThreadJob 模組,如關於 SO 的出色答案中所述:

$commands = { ./run_part1.bat },
           { ./run_part2.bat },
           { ./run_part3.bat },
           { ./run_part4.bat }
$jobs = $commands | Foreach-Object { Start-ThreadJob $_ }
$jobs | Receive-Job -Wait -AutoRemoveJob
./run_last.bat 

你可以使用 CALL ,它從另一個浴文件中呼叫一個浴文件

欲了解更多資訊,請查看https://www.robvanderwoude.com/call.php

引用自:https://serverfault.com/questions/1076319