我想强制命令行等待自己的进程,因为这个进程app.exe必须完成,并且需要一些时间。我使用人工超时来阻止脚本关闭,因为如果我设置超时错误,那么app.exe会给出错误的结果。我有正确的估计超时问题。
我读过有关选项/ 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 :(得分:0)
您可以使用 start 命令使批处理脚本等待自己
@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"
...