【发布时间】:2019-05-30 12:29:36
【问题描述】:
假设我有 5 个批处理文件需要同时运行以节省时间;这 5 个批处理文件当前都是从同一个 MakeAll 批处理文件中调用的:
START /D PATH "Window Name" BATCH_FILE ARGUMENTS
当前一组(MakeAll)的所有 5 个都运行完毕后,我还有 2 个需要运行的其他批处理文件;这 2 个批处理文件使用上述相同命令从同一个 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
【问题讨论】:
-
成为这里的会员五年后,您应该知道 StackOverflow 是一个您根据发布的代码 minimal reproducible example 并解释它如何无法工作的特定问题的网站如书面和预期的那样。您没有提出任何问题,仅提供了一个“待办事项”列表,如果您需要特定的帮助,您需要 edit your question 将其带到主题上。
-
好吧,您现在已经扩展了您的“待办事项”列表,但仍未提出具体问题。请注意,“你能为我写我的脚本吗”不是一个可接受的问题,但目前看来正是你所期望的。此外,如果
ECHO Running确实是您的progX.bat文件的内容,则也无需设置每个文件的工作目录。 -
从来没有要求有人为我写任何东西,只是想了解一种有效地使用批处理进行并行处理的方法,这需要同步开始/结束事件...... ECHO Running 显然是一个占位符,您不想看到我的 4 页批处理文件,我也无法向您展示它们。很抱歉,这个问题措辞有点糟糕,“等待所有批处理文件完成”在批处理上下文中确实更有意义,所以感谢您的澄清,我不是批处理程序员,所以我想一般来说。