首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用taskkill中断无限循环

使用taskkill中断无限循环
EN

Stack Overflow用户
提问于 2015-10-17 01:20:24
回答 4查看 752关注 0票数 1

我尝试进行无限循环,以检查node.exe是否使用了一定数量的内存。如下所示:

代码语言:javascript
复制
:loop2
sleep
taskkill /f /im node.exe "memusage gt 85000" > nul
timeout /t 30
GOTO loop2

但是,当taskkill被处理时,如何打破这个无限循环呢?

EN

回答 4

Stack Overflow用户

发布于 2015-10-18 08:58:25

代码语言:javascript
复制
set "Myprocess=node.exe"
:test
tasklist | find /i "%MyProcess%">nul  && Taskkill /F /IM  "%MyProcess%" & exit/b
timeout /t 30
goto:test
票数 2
EN

Stack Overflow用户

发布于 2015-10-17 02:18:33

适用于我,适用于任何地点。

代码语言:javascript
复制
: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
)
票数 1
EN

Stack Overflow用户

发布于 2015-10-17 02:09:09

另一种方法是使用TASKLIST查看是否有匹配的映像正在运行。这段代码没有经过测试。

代码语言:javascript
复制
: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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33176126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档