在Windows批处理循环中,如何等待产卵过程在继续之前完成



我想在这样的批处理文件中的循环中发射多个命令:

for /l %%x in (20170101,1,20170105) do (
start /wait C:Progra~1AmazonAWSCLIaws s3 cp s3://bucket1/%%x 
s3://bucket2/%%x --recursive
)
#do something else here only when ALL the above commands complete

start/wait 是否有等待直到所有命令完成之前的效果

start /wait不是"全局",它只是等待启动过程完成(也许...取决于应用程序的编程方式)。您需要的内容(并行启动多个过程,然后等到最后一个方法可以使用不同的方法来完成:给所有过程一个定义的标题并观看它们:

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,10) do (
   start "OneOfMyProcesses" timeout !random:~-1!
)
echo waiting
:loop
timeout 1 >nul
tasklist /v |find "OneOfMyProcesses" >nul && goto :loop
echo all of them are finished

注意:如上所述,这可能与您的您的应用程序一起使用

最新更新