如何退出另一个程序时关闭CMD?

时间:2015-12-16 03:58:41

标签: windows batch-file

我想在退出程序csgo.exe时关闭cmd窗口。打开了一个cmd窗口,它是(node server.js),我希望在csgo.exe退出时停止该程序。

这是完整的.bat。

@ECHO OFF
start steam://rungameid/730
start cmd /K "cd C:\CSGO-HUD-master & node server.js"
start cmd /K "cd C:\Program Files (x86)\Mozilla Firefox & start firefox.exe http://localhost:2626/ & exit"

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您知道要观看的节目的任务名称,则可以使用。这是代码:

@echo off
:LOOP
tasklist|findstr calc.exe > nul
if %errorlevel%==1 goto ENDLOOP
ping 127.0.0.1 -n 2 > nul
goto LOOP
:ENDLOOP
exit

在这个例子中,我们希望我们的bat在计算器(calc.exe)关闭后终止。

为实现这一目标,我们首先执行tasklist,它会为我们提供所有正在运行的程序的列表。然后我们检查输出是否出现calc.exe。如果它仍在运行,findstr calc.exe会将%errorlevel%设置为0,这样我们就可以跳回来再次检查。如果calc.exe未运行,则%errorlevel%将设置为1,因此我们知道我们可以跳出循环并终止。

我添加了行ping 127.0.0.1 -n 2 > nul以避免busy waiting。这一行将使您的代码在两次迭代之间“等待”一秒钟。考虑一下,要调整等待时间,您需要将2替换为等待 +1 所需的秒数。因此,如果您想等待五秒钟,代码将为ping 127.0.0.1 -n 6 > nul