2016-08-13 44 views
0

我想强制命令行等待他自己的进程,因为这个进程app.exe必须完成,并且需要一些时间。我使用人工超时来防止脚本关闭,因为如果我将超时设置错误,那么app.exe会给出错误的结果。我有正确的估计超时问题。强制批处理文件等待他自己的进程

我读了一些关于options/w和/ k的内容,但我不知道它在哪里插入。 也许等待进程会是很好的解决方案,但我不知道该怎么做。 代码如下:

( 
@echo instruction1 to app.exe 
@echo instruction2 to app.exe 
@echo instruction3 to app.exe 
@echo instruction4 to app.exe 
timeout 3 
) | app.exe > out.txt 

这个脚本是由C语言编写另一个应用名为++而不是从APP.EXE。我有Windows 7 其运行脚本行:

system("script.bat");

回答

0

您可以使用开始命令使批处理脚本等待本身

@echo off 

if /I "%~1" EQU "runme" goto %~1 

start "" /B /WAIT cmd /c "%~s0 runme %*" 

exit /B 

:runme 

( 
@echo instruction1 to app.exe 
@echo instruction2 to app.exe 
@echo instruction3 to app.exe 
@echo instruction4 to app.exe 
) | app.exe > out.txt 

timeout 3 

exit /B 

编辑:可能我误解了你的问题,也许这就是你要求的

start "" /B /WAIT cmd /c "app.exe some_parameter_here" 
start "" /B /WAIT cmd /c "app.exe some_parameter_here" 
start "" /B /WAIT cmd /c "app.exe some_parameter_here" 
... 

start "" /B /WAIT cmd /c "echo some_parameter_here | app.exe" 
start "" /B /WAIT cmd /c "echo some_parameter_here | app.exe" 
start "" /B /WAIT cmd /c "echo some_parameter_here | app.exe" 
... 
相关问题