我需要从我的批处理作业中启动 2 个后台进程,然后等待它们。Unix shell 类似物是:
myprocess1 -flags1 &
pid1=$!
myprocess2 -flags2 &
pid2=$!
wait ${pid1}
wait ${pid2}
有任何想法吗?
我需要从我的批处理作业中启动 2 个后台进程,然后等待它们。Unix shell 类似物是:
myprocess1 -flags1 &
pid1=$!
myprocess2 -flags2 &
pid2=$!
wait ${pid1}
wait ${pid2}
有任何想法吗?
您可以使用启动包装器来解决它。
包装器启动一个进程,start /wait
并在该进程完成后删除一个用于发送信号的文件。
您从包装器开始的第一个过程,您可以从start /wait
.
然后你只需要等待文件。
Echo > waiting.tmp
Start cmd /c wrapper.bat myprocess1 -flags1
start /wait myprocess2 -flags2
:loop
if exist waiting.tmp goto :loop
wrapper.bat 的内容
start /wait %*
del waiting.tmp
使用START
命令:
START /WAIT myprocess1 -flags1
唯一的问题是 AFAIK 你不能让进程并行运行并等待它们——它们必须按顺序运行。
您可以通过在没有 的情况下启动两个进程来实现并发START /WAIT
,然后定期解析TASKLIST
命令的输出以查看它们是否仍在运行。这将变得更加复杂,当然这是一个忙碌的等待,但理论上会允许进程同时运行。