所以我有那个启动.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
哪个不起作用......
(很抱歉,这些东西很糟糕的术语和拼写错误以及我所有的菜鸟......而且我已经失去了TT)
答案 0 :(得分: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.
它检查标准窗口计算器calc.exe
,这很容易启动。我在cmd
中启动批处理文件,然后在超时2或3次后启动计算器。批处理文件正确检测到calc
正在运行,并结束批处理文件。