您是否可以在批处理文件中运行两个可执行文件并等待第一个进程在开始下一个进程之前结束?
答案 0 :(得分:18)
使用开始/等待:
:NOTEPAD
start /wait notepad.exe
IF %ERRORLEVEL% == 0 goto NEXTITEM1
else goto QUIT
:NEXTITEM1
start /wait mplayer.exe
IF %ERRORLEVEL% == 0 goto NEXTITEM2
else goto QUIT
:NEXTITEM2
start /wait explorer.exe
IF %ERRORLEVEL% == 0 goto NEXTITEM3
else goto QUIT
:NEXTITEM3
REM You get the idea...
:QUIT
exit
此外,使用NT CMD而不是BAT(myscript.cmd)。
在回复评论时,从上面的脚本中删除括号%ERRORLEVEL%。以下似乎表现得如预期:
:NOTEPAD
start /wait notepad.exe || goto QUIT
:NEXTITEM1
start /wait mplayer2.exe || goto QUIT
:NEXTITEM2
REM You get the idea...
:QUIT
exit
双管道之后的语句仅在它失败之前执行。
答案 1 :(得分:6)
一个较短的方式:
notepad.exe|more
即使这样也可以使用:
notepad|rem
尽管最终只有more
,但如果有任何输出,你可以捕获一些输出。这就是它工作的原因 - 管道命令等待输入直到.exe完成。