在可执行文件运行时如何让Windows批处理文件暂停?

7 windows batch-file

我正在写一个批处理文件,我在其中调用EXE来执行.现在,调用EXE之后的语句不应该执行,直到EXE完成执行.如何在批处理文件中(在Windows上)执行此操作?

aph*_*ria 14

START /WAIT First.exe
START /WAIT Second.exe
Run Code Online (Sandbox Code Playgroud)


kdm*_*ray 7

这取决于.exe的工作原理.我担心我没有所有的技术细节或术语,但是一些.exe文件会在它们启动后立即返回对会话的控制,而其他文件在程序终止之后才会返回控制.

第二种情况很简单,因为文件后期的命令在前者完成之前不会执行,因此我假设您正面临案例#1.

如果执行每次运行(大约)相同的时间是一个简单的解决方法/黑客,那就是使用带有延迟的ping命令.

PING 127.0.0.1 -n 1 -w 120000 >NUL
Run Code Online (Sandbox Code Playgroud)

这将强制ping命令以120000ms(2分钟)延迟运行一次.

fpschultze.de上还有一篇关于更复杂(但更可靠的方法)的文章,其中有更详细的解释.简而言之,您查询任务列表,搜索您正在等待的可执行文件.一旦它不存在,你就继续使用批处理文件.它也使用ping方法,但方式不同.


Too*_*the 6

批处理文件中的语句按顺序执行.因此,如果批处理文件如下所示:

first.exe
next.exe
Run Code Online (Sandbox Code Playgroud)

如果第一个完成,则执行Next.


Dea*_*her 0

您可以使用

PAUSE
Run Code Online (Sandbox Code Playgroud)

在批处理脚本中,但我不明白你的问题。