我当前有此批处理脚本:
start udp%1.exe timeout /t %2 taskkill /f /im "udp%1.exe"
这非常有效,在选定的时间后会终止程序,但是如果我手动关闭udp%1.exe并启动另一个具有相同ID的程序,则其他批处理脚本中的计时器仍在运行,并将终止下一个启动的程序。我不完全确定是否可以检查进程是否仍在批量运行?如果是的话,关闭计时器,这样它就不会杀死具有相同ID的其他人?
尝试以下代码:
@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脚本。:)