Batch file 批处理-在关闭C结束B后启动.exe A和B

Batch file 批处理-在关闭C结束B后启动.exe A和B,batch-file,Batch File,因此,我有一个启动.exe A和B的批处理,其中A是一个(游戏)启动器,关闭并启动一个文件C。我可以在关闭游戏后这样做吗(C)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 这不管用 (对于

因此,我有一个启动.exe A和B的批处理,其中A是一个(游戏)启动器,关闭并启动一个文件C。我可以在关闭游戏后这样做吗(C)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
这不管用


(对于糟糕的术语和打字错误以及其他一切,我感到很抱歉,当涉及到这些事情时,我真是个傻瓜……我真的很迷恋T.T)

这里有一个简单的循环可以做到这一点:

: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
正在运行,并结束批处理文件。

/wait
本身不是命令。它是
START
命令的一个选项。
Sleep
也不是标准命令,建议您在命令提示符窗口中输入以下内容以了解更多信息<代码>开始/?,
超时/?
任务终止/?
。一旦你理解了这些命令是如何工作的,更新上面的脚本,根据需要编辑文章。谢谢!我想我现在有点明白了,我不能使用start命令,对吧?然后如何使脚本等待exe(不是由批处理启动)?使用TASKLIST查看程序是否正在运行。创建一个循环,每分钟检查一次。当您最终看不到它在运行时,请使用taskkill停止b.exe。@Squashman我该怎么做?同样,我是批处理的新手,我3天前就开始使用它了。它能像这样工作吗<代码>如果任务列表/FI“Services eq B.exe”/FI“Status eq running”than timeout/T 60/NOBREAK else taskkill”““C.exe”如果是这样(我真的不希望是这样),我如何循环它直到
else
而不是刹车循环?编辑,这样我尝试了几次,它会继续循环,不管“theProgram.exe”是在运行还是关闭