如何在退出之前等待所有批處理文件完成?我有一個主批處理文件,而不是調用其他4個批處理文件,所以我們可以并行運行。例:Main.bat start call batch1.bat
start call batch2.bat
start call batch3.bat
start call batch4.bat
exit我希望Main.bat在所有batch1到batch 4停止執行后退出。通過這種方式,我可以獲得批處理文件的總運行時間。問題是Main.bat甚至在batch1到batch4完成執行之前退出。我嘗試為每個批處理文件計算%errorlevel%,但即使4 .bat文件仍在運行,它總是返回0。希望有人可以幫助我!
3 回答

瀟湘沐
TA貢獻1816條經驗 獲得超6個贊
我認為這是最簡單,最有效的方式:
@echo offecho %time%( start call batch1.bat start call batch2.bat start call batch3.bat start call batch4.bat) | set /P "="echo %time%
在此方法中,主文件中的等待狀態是事件驅動的,因此它不消耗任何CPU時間!
編輯:添加了一些解釋
該set /P
命令將終止命令當有人在( block )
一個線路輸出,但start
命令不顯示任何線在此的cmd.exe。這樣,set /P
在start
命令啟動的所有進程結束之前,一直等待輸入。此時,與之關聯的管道( block )
關閉,因此set /P
Stdin關閉,set /P
操作系統終止命令。

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
試一試。
@echo offecho %time%start "" /wait cmd /c bat1.bat |start "" /wait cmd /c bat2.bat |start "" /wait cmd /c bat3.batecho %time%pause
- 3 回答
- 0 關注
- 1140 瀏覽
添加回答
舉報
0/150
提交
取消