0

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

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

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

4

1 回答 1

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

于 2014-07-21T23:37:00.537 回答