我目前有这个批处理脚本:
start udp%1.exe
timeout /t %2
taskkill /f /im "udp%1.exe"
这很好用并在选定的时间后杀死程序,但是如果我要手动关闭udp%1.exe并启动另一个具有相同ID的程序,则来自其他批处理脚本的计时器仍在运行并将终止下一次推出。我不完全确定我是否可以检查流程是否仍在批量运行?如果是这样,关闭计时器,以便它不会杀死具有相同ID的其他人?
答案 0 :(得分:1)
试试这段代码:
@echo off
start "udp%1.exe"
timeout /t %2
tasklist /FI "IMAGENAME eq udp%1.exe" 2>NUL | find /I /N "udp%1.exe">NUL
if "%ERRORLEVEL%"=="0" goto yes
goto no
:yes
taskkill /f /im "udp%1.exe"
exit
:no
exit
等待选定的时间,如果程序正在运行,它会关闭它,如果程序没有运行,它会退出。如果在计时器仍在运行时您不想检测程序是否已关闭,您可能需要查看vbs脚本。 :)