等待可执行文件完成运行

Pil*_*ast 7 windows batch-file

您可以在批处理文件中运行两个可执行文件并等待第一个进程在开始下一个进程之前结束吗?

nim*_*zen 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
Run Code Online (Sandbox Code Playgroud)

此外,使用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  
Run Code Online (Sandbox Code Playgroud)

双管道之后的语句仅在其失败之前执行.


npo*_*aka 6

一个较短的方式:

notepad.exe|more
Run Code Online (Sandbox Code Playgroud)

即使这可以使用:

notepad|rem
Run Code Online (Sandbox Code Playgroud)

虽然最终more你将能够捕获一些输出,如果有的话.这就是它工作的原因 - 管道命令等待输入,直到.exe完成.