Taskkill和计时器批量生产

时间:2014-07-21 20:55:38

标签: batch-file timer taskkill

我目前有这个批处理脚本:

start udp%1.exe
timeout /t %2
taskkill /f /im "udp%1.exe"

这很好用并在选定的时间后杀死程序,但是如果我要手动关闭udp%1.exe并启动另一个具有相同ID的程序,则来自其他批处理脚本的计时器仍在运行并将终止下一次推出。我不完全确定我是否可以检查流程是否仍在批量运行?如果是这样,关闭计时器,以便它不会杀死具有相同ID的其他人?

1 个答案:

答案 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脚本。 :)