我需要從批處理作業中啓動2個後臺進程,然後等待它們。 Unix外殼模擬是:Windows批處理:在後臺運行進程並等待它
myprocess1 -flags1 &
pid1=$!
myprocess2 -flags2 &
pid2=$!
wait ${pid1}
wait ${pid2}
任何想法?
我需要從批處理作業中啓動2個後臺進程,然後等待它們。 Unix外殼模擬是:Windows批處理:在後臺運行進程並等待它
myprocess1 -flags1 &
pid1=$!
myprocess2 -flags2 &
pid2=$!
wait ${pid1}
wait ${pid2}
任何想法?
你可以使用開始包裝來解決它。
包裝器使用start /wait
啓動一個進程,並在該過程完成後刪除信號文件。
您首先通過包裝器開始的第一個過程,第二個過程可以從start /wait
開始。
然後你只需要等待文件。 wrapper.bat
start /wait %*
del waiting.tmp
使用START
命令:
START /WAIT myprocess1 -flags1
唯一的問題是,據我所知,你不能讓程序並行運行,等待他們兩人 - 他們必須按順序運行。
您可能可以通過啓動兩個進程而不是START /WAIT
來執行併發,然後週期性地分析TASKLIST
命令的輸出以查看它們是否仍在運行。這將變得更加複雜,當然這是一個忙碌的等待,但理論上會允許進程同時運行。
我真的需要並行運行這些進程。如果可能的話,我也想避免解析。 –
的
內容有安裝'bash' for Windows或類似的東西(我敢肯定有'zsh'本地人,非cygwin的端口的想法, 至少)。我很想爲許多批處理文件問題推薦相同的內容,但對於這個問題,這可能是一個很好的答案。 –
@AntonKovalenko謝謝。我正在考慮這個問題。 –