Multithreading 如何等待多个批处理文件完成

Multithreading 如何等待多个批处理文件完成,multithreading,batch-file,Multithreading,Batch File,假设我有5个批处理文件需要同时运行以节省时间;这5个批处理文件当前都是从同一个MakeAll批处理文件调用的,具有: START /D PATH "Window Name" BATCH_FILE ARGUMENTS 然后,当前一个组(MakeAll)的所有5个都运行完时,我还有另外两个批处理文件需要运行;这两个批处理文件在同一个AssembleAll批处理文件中用上述同一命令调用了4次,调用的参数不同 理想情况下,我希望创建另一个名为DoAll的批处理文件,该文件首先运行MakeAll并等待5

假设我有5个批处理文件需要同时运行以节省时间;这5个批处理文件当前都是从同一个MakeAll批处理文件调用的,具有:

START /D PATH "Window Name" BATCH_FILE ARGUMENTS
然后,当前一个组(MakeAll)的所有5个都运行完时,我还有另外两个批处理文件需要运行;这两个批处理文件在同一个AssembleAll批处理文件中用上述同一命令调用了4次,调用的参数不同

理想情况下,我希望创建另一个名为DoAll的批处理文件,该文件首先运行MakeAll并等待5个相关进程完成,然后调用AssembleAll

代码

DoAll.bat:

START /D Folder9 "Window9" MakeAll.bat
:: Wait for the above to finish all 5 windows
START /D Folder10 "Window510" AssembleAll.bat
MakeAll.bat:

START /D Folder1 "Window1" prog1.bat
START /D Folder2 "Window2" prog2.bat
START /D Folder3 "Window3" prog3.bat
START /D Folder4 "Window4" prog4.bat
START /D Folder5 "Window5" prog5.bat
AssembleAll.bat:

START /D Folder5 "Window5" prog5.bat
START /D Folder6 "Window6" prog6.bat
START /D Folder7 "Window7" prog7.bat
START /D Folder8 "Window8" prog8.bat
所有progX.bat文件都包含:

ECHO Running

尽管有问题的标题,但我认为您不想“同步”批处理文件,而是希望“等待所有批处理文件完成后再继续”。我用前面的一句话在这个网站上完成了一个简单的搜索,发现了一个名为:我认为这就是您正在寻找的解决方案:

echo MakeAll.bat starts
(
START /D Folder1 "Window1" prog1.bat
START /D Folder2 "Window2" prog2.bat
START /D Folder3 "Window3" prog3.bat
START /D Folder4 "Window4" prog4.bat
START /D Folder5 "Window5" prog5.bat
) | pause
echo MakeAll.bat ends

echo AssembleAll.bat starts
(
START /D Folder5 "Window5" prog5.bat
START /D Folder6 "Window6" prog6.bat
START /D Folder7 "Window7" prog7.bat
START /D Folder8 "Window8" prog8.bat
) | pause
echo AssembleAll.bat ends

有关所用方法的说明,请参见链接答案…

在这里成为会员五年后,您应该知道StackOverflow是一个网站,您可以在该网站上根据张贴的代码提出特定问题,并解释其如何无法按书面和预期工作。你没有提出问题,只是提供了一个“待办事项”列表,如果你想在某些事情上得到具体帮助,你需要把它带到主题上。现在你已经扩展了“待办事项”列表,但仍然没有提出具体问题。请注意,“你能为我写剧本吗”不是一个可以接受的问题,但目前看来正是你所期待的。另外,如果
ECHO Running
确实是您的
progX.bat
文件的内容,则无需设置每个文件的工作目录。从未要求有人为我编写任何内容,只是试图了解一种有效执行批处理并行处理的方法,这需要同步开始/结束事件。。。ECHO Running显然是一个占位符,您不想看到我的4页批处理文件,而且我无法向您显示它们。很抱歉,这个问题的措辞有点糟糕,“等待所有批处理文件完成”在批处理上下文中确实更有意义,因此感谢您的澄清,我不是批处理程序员,所以我想我是一般性的。谢谢,我显然搜索了错误的术语。