你如何完成完成 exe 在批处理文件中?

我正在尝试在完成工作时创建脚本来执行exe文件 sp1. 我的剧本看起来像这样。 (不是一个真正的Valet情景).

If installed GOTO END
Install.exe
END:

我的问题是,当它开始时,它开始安装程序,然后完成脚本,因为安装程序 - 这是另一个进程,然后完成安装过程,因为计算机关闭并关闭系统 (至少我认为它确实如此。)

有没有办法告诉他等到他推出的进程将结束然后结束?
已邀请:

詹大官人

赞同来自:

尝试运行

START /WAIT Install.exe

小姐请别说爱

赞同来自:

一个最短的方式:

Install.exe|more



install|rem

尽管随着时间的推移,可以使用,但是您可以获得一些结论。 这就是他工作的原因 - 传送带团队正在等待输入 .exe 将无法完成。

石油百科

赞同来自:

要么打电话 exe 直接从命令文件或使用

start /wait

将工作,但有一个细微差别。

如果被叫的exe-file创建另一个进程,例如调用另一个exe文件,然后完成工作,批处理文件将继续处理,因为它不知道运行其他进程。

在您的情况下,这是一个真正的问题,因为安装程序通常从某种形式的压缩容器中删除文件,这可以内置于某种形式 exe, 然后运行其中一个提取的文件并退出。 有些安装程序提供命令行参数,说明原始exe文件在整个安装完成之前未出发,以便这是您可能想要学习的。 此外,使用命令文件只有没有真正的方法来绕过这个问题,并且需要一个软件解决方案来解决它。

八刀丁二

赞同来自:

这是一个使用的例子 MATLAB! 我建议设置路径 MATLAB 表演,脱离了 MATLAB 由文件提供 FileName.m (或者用户指向内部).

echo off
matlab -nosplash /r "FileName.m"
:loop
tasklist /fi "imagename eq MATLAB.exe" |find ":" > nul
if errorlevel 1 goto loop
exit

君笑尘

赞同来自:

我有一个问题 @John Gardeniers 有或描述我的 exe 造成另一个 exe 并完成工作所以运行 / 等待没有工作。 我创造了一个“循环 while», 检查它是否有效,然后转到下一个阶段。 时间可以根据您的需求进行配置。

TIMEOUT /T 60

SETLOCAL EnableExtensions
set EXE=MYEXETOCHECK.exe
:LOOPSTART
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
goto FIN
:FOUND
TIMEOUT /T 30
goto LOOPSTART
:FIN

奔跑吧少年

赞同来自:

您可以使用该命令 start / wait. 它启动申请并等待完成。

或者,如果您知道执行需要多长时间,则可以查看所提供的睡眠命令
http://www.microsoft.com/downl ... %3Den
. Sleep.exe 您可以用来暂停任何秒数的包的执行,以便在包文件继续安装其他内容之前可以完全安装程序。 有一些程序忽略了语法 "跑步 / 期待", 由于程序本身启动另一个进程,因此 sleep.exe 很有用。

江南孤鹜

赞同来自:

就像该文件的情况一样 @FreeSoftwareServers, 我需要等待命令文件未运行的程序启动。 然后等待几秒钟开始连接到我检查程序的程序。 如果您希望该文件在检查一定次数后超出等待时间,则可以使用循环中的仪表来限制它重复的周期数。

SETLOCAL EnableExtensions
set EXE=MYEXETOCHECK.exe
:LOOPSTART
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
TIMEOUT /T 3
goto LOOPSTART
:FOUND
TIMEOUT /T 15
START HOOKINGPROGRAM.exe

第一的 TIMEOUT 确定将重复循环的频率以搜索该程序。 可以根据您的需求进行更改。

要回复问题请先登录注册