我尝试进行无限循环,以检查node.exe
是否使用了一定数量的内存。如下所示:
:loop2
sleep
taskkill /f /im node.exe "memusage gt 85000" > nul
timeout /t 30
GOTO loop2
但是,当taskkill
被处理时,如何打破这个无限循环呢?
发布于 2015-10-18 08:58:25
set "Myprocess=node.exe"
:test
tasklist | find /i "%MyProcess%">nul && Taskkill /F /IM "%MyProcess%" & exit/b
timeout /t 30
goto:test
发布于 2015-10-17 02:18:33
适用于我,适用于任何地点。
:loop2
sleep
set _tk=
for /f "skip=1 delims=, tokens=2" %%A in ('tasklist /fi "imagename eq node.exe" /fi "memusage gt 85000" /fo csv') do (
taskkill /f /pid %%~A
set _tk=1
)
if not "%_tk%"=="1" (
timeout /t 30
GOTO loop2
)
发布于 2015-10-17 02:09:09
另一种方法是使用TASKLIST
查看是否有匹配的映像正在运行。这段代码没有经过测试。
:loop2
SET TEMPFILE=%TEMP%\tk_%RANDOM%.tmp
TASKLIST /FI "IMAGENAME eq cmd.exe" /FI "MEMUSAGE gt 9000" >"%TEMPFILE%"
SET /P TKI=<"%TEMPFILE%"
IF "%TKI%" EQU "INFO: No tasks are running which match the specified criteria." (GOTO OutOfIt)
taskkill /f /im node.exe "memusage gt 85000" > nul
timeout /t 30
GOTO loop2
:OutOfIt
IF EXISTS "%TEMPFILE%" (DEL "%TEMPFILE%")
EXIT /B
https://stackoverflow.com/questions/33176126
复制相似问题