windows - 并行执行批处理文件并等待所有完成

标签 windows batch-file cmd

我有一个 master batch 文件调用另一个列表 batch 文件。我想等到所有的batch文件都执行完了(不能说哪个执行得更快)然后来到master batch文件执行剩余。

例子:

           a) master.bat            b) build.bat
              call build.bat           start web.bat        
              post.bat                 start db.bat                            

这里 master.bat 调用一个文件 build.batbuild.bat 文件运行 web & db bat 文件,一旦它们被执行,它必须返回到 master.bat 并运行 post.bat

任何人都可以指导我如何做到这一点。

最佳答案

终于搞定了但是忘了更新:)

@echo off
setlocal
set "lock=%temp%\wait%random%.lock"

:: Launch processes asynchronously, with stream 9 redirected to a lock file.
:: The lock file will remain locked until the script ends.
start "" 9>"%lock%1" web.bat
start "" 9>"%lock%2" db.bat

:Wait for both processes to finish (wait until lock files are no longer locked)
1>nul 2>nul ping /n 2 ::1
for %%N in (1 2) do (
  (call ) 9>"%lock%%%N" || goto :Wait
) 2>nul

::delete the lock files
del "%lock%*"

:: Finish up
echo Done - ready to continue processing.

谢谢,

关于windows - 并行执行批处理文件并等待所有完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755181/

相关文章:

windows - 使用批处理文件或命令删除只读文件

javascript - 从javascript运行一个bat文件

json - 通过命令行将 json 回显到文件中

使用 MSVC++ 2005 的 Windows 上的 C++ 内存问题和诊断

c - 如何获取适用于 Windows 的 `Makeheaders` 二进制文件?

python - ipython 无法在 Windows 上运行

javascript - Backstopjs 无法连接它启动的浏览器

windows - 使用批处理启动服务器后关闭 cmd

c++ - 在 C++ 中操作 QStringList

windows - WMIC.bat 文件无法正确导出/输出