在多个同时批处理文件完成后执行1个批处理文件

2024-05-19 13:09:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我阅读了以下两篇文章,发现它们似乎都没有回答我的问题How to call one batch file after anotherExecute batch file after another batch file completes。在

我尝试在WindowsServer2012 R2 Standard上通过批处理文件运行一系列6个python脚本。我希望前5个脚本同时运行(加工.bat),它目前由五个子bat文件组成(北.bat, 西蝙蝠, 南.bat, 中央.bat, 东北.bat). 一旦完成,它就应该运行一个最终的脚本,该脚本与前5个的输出一起工作(合并.bat). 在

我尝试过几种呼叫和启动/等待的组合,但似乎没有什么能做得对。当前,我的主bat文件如下所示:

start /wait Processing.bat
start /wait Merge.bat

在加工.bat看起来像:

^{pr2}$

每个子蝙蝠看起来像:

start /wait C:\Python27\ArcGIS10.4\python.exe E:\TestScript.py Central 

IF %ERRORLEVEL% EQU 0 EXIT

最后呢合并.bat看起来像:

start /wait C:\Python27\ArcGIS10.4\python.exe E:\MergeSDE.py

IF %ERRORLEVEL% EQU 0 EXIT

使用此设置,所有6个脚本将同时运行(而不是5个后接1个)。但在每个脚本完成之前,相应的命令提示符窗口将保持打开状态(7个窗口)。关键是如果我要改变加工.bat要“启动/等待”,它将一个接一个地运行(前5个中的哪一个,我不想要),但是在主批处理中使用“start/wait”,所有子批都会同时运行。在


Tags: 文件py脚本ifbatchanotherexestart
2条回答

这是解决这个问题的最简单方法:

(
start North.bat
start South.bat
start NorthEast.bat
start West.bat
start Central.bat
) | set /P "="

call Merge.bat

更多详细信息请访问How to wait all batch files to finish before exiting?。在

对于批处理文件,假设您可以编辑它们。在

在第一次创建标志文件结束时设置:

break>"%temp%\north"

第二天:

^{pr2}$

其他人也一样。在

在合并.bat设置(如果西蝙蝠是最后执行的文件):

^{3}$

merge.bat应使用start重新启动指挥。还有标志文件应提前删除。在

相关问题 更多 >