大家好,我是批处理的新手,但每隔一段时间都喜欢修补和编码。我可以制作一个同时关闭两个程序的批处理文件吗?例如,我创建了一个打开两个程序的批处理文件,App_A(游戏手柄模拟器)最小化App_B(离线RPG游戏)正常窗口。我想要的是当我关闭App_B时,App_A会自动关闭,以便我不必恢复窗口并手动关闭模拟器。
这是我刚才所做的代码,我也在这个网站上找到并运行它:
ECHO OFF
start /d "C:\Documents and Settings\Computer\My Documents\Imulator\PROFILE" SET1.imulatorprofile /m
ECHO IMULATOR STARTED
start /d "C:\Program Files\App_B" App_BLauncher.exe
ECHO APP_B STARTED
ECHO OPERATION COMPLETE
任何评论或建议都非常受欢迎!感谢先进:)
答案 0 :(得分:0)
我使用Windows命令行并不是很好,但我会尝试以下方法:
您可以在start找到有关PsKill,this site和其他命令的详细信息。
希望有所帮助。
*斯特
......稍后补充......
另一种选择是在进程(App_B)正在运行时在后台进行常规检查,并在完成时继续(在停止App_A时)。当App_B只是另一个进程的启动器(例如App_Launched_By_B)并直接返回时,这种方法很有意义。
这可以通过一个可能与此类似的小循环来完成:
start "App_A" /d "C:\Programs\App_A" App_A.exe
ECHO App_A STARTED
start "App_B" /d "C:\Programs\App_B" App_B.exe
ECHO App_B STARTED
ECHO GIVE App_B 30 SECONDS TO LAUNCH App_Launched_By_B
SLEEP 30
:LOOP
PSLIST App_Launched_By_B >nul 2>&1
IF ERRORLEVEL 1 (
GOTO CONTINUE
) ELSE (
ECHO App_Launched_By_B IS STILL RUNNING - PAUSE ANOTHER 5 SECS
SLEEP 5
GOTO LOOP
)
:CONTINUE
PsKill App_A
ECHO App_A STOPPED
此示例最初来自another answer,由aphoria编写。对于这种情况,我只是稍微调整了一下。
有关PsList及其他命令的其他信息,请访问this site。
我还想注意,我并不喜欢这种方法,因为它消耗了一些cpu而没有做太多。但它是我能看到的批处理文件的唯一解决方案。
答案 1 :(得分:0)
您可以使用另一个包含两个taskkill行的批处理文件,每个应用程序对应一个,然后启动它。
否则,您需要在窗口中一直运行批处理文件,该窗口循环并检查appB是否未运行,然后它将关闭appA。它不是很优雅。