2017-02-22 66 views
-1

因此,我有该批处理启动.exe A和B,其中A是关闭并启动文件C的(游戏)启动器。我可以制作那么在我关闭游戏后(C)B文件关闭了吗?批处理 - 在关闭C结束B后启动.exe A和B

此外,我曾试图扎堆这样的事情 -

@echo off 
start A.exe 
start B.exe 
:CheckAgain 
tasklist | findstr "TheCProgram.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 
taskkill B.exe 
exit 

不工作...

(对不起,我可怜的术语和错别字,一切我是这样的小白,当谈到这些事情......而我这样就失去了TT)

+0

'/ wait'本身不是一个命令。这是“START”命令的一个选项。 – Squashman

+0

'睡眠'也不是一个标准命令,建议您在**命令提示符**窗口中输入以下内容以了解更多信息。 'Start /?','Timeout /?','TaskKill /?'。一旦您了解了这些命令的工作方式,请更新上面的脚本,根据需要编辑该帖子。 – Compo

+0

谢谢!我想我现在有点了解我不能使用启动命令,对吧?然后如何让脚本等待exe(不是由批处理启动)? – araraf

回答

1

下面是一个简单的循环应该这样做:

:CheckAgain 
tasklist | findstr "TheCProgram.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 

分拆下来:

:CheckAgain    :: A label for the start of the loop 
tasklist     :: Get list of running programs 
findstr "TheCProgram.exe" :: Search to see if the program C is running? 
if errorlevel 1   :: If there was an error, then the program is not yet running. 
timeout /T 2    :: Wait 2 seconds 
& goto :CheckAgain   :: Go start the loop again to look for the program. 

(轻测试,可能不稳固的)


这里是我所使用的示例脚本,

@echo off 

:CheckAgain 
tasklist | findstr "calc.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 

echo The Calculator Program is now running. 

它检查对于易于启动的标准Windows计算器calc.exe。我在cmd开始批处理文件,然后在超过2或3次后启动计算器。批处理文件正确检测到calc正在运行,并结束批处理文件。

+0

*编辑*所以我试了几次,它不断循环,无论是“TheCProgram.exe”正在运行还是关闭 – araraf

相关问题