我需要从批处理作业中启动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谢谢。我正在考虑这个问题。 –