2017-05-30 58 views
0

目前在Windows服务器上,某些进程正在运行,并且它一直在消耗内存。如果超过特定的限制,我想杀死这个进程。如果超过6 GB的内存使用率应该会终止进程。我正在寻找可以添加到计划任务的批处理脚本。对此有何帮助?提前致谢。如果超过6GB,将终止进程

+1

你认为的“内存使用”是什么?没有明确的定义,但您的脚本必须使用一个定义。 – MSalters

+0

在Windows任务管理器中,在“内存”下我们看到了用法。如果进程超过特定内存,我想杀死该进程。 – user2817712

回答

0

有些像这应该工作:

@ECHO OFF 
SET procName=someProc.exe 
SET RAMLimit=123.456 
FOR /F "tokens=*" %%F IN ('tasklist^|findstr %procName%') DO SET foundString=%%F 
FOR /F "tokens=5" %%F IN ("%foundString%") DO SET RAMConsumption=%%F 
IF %RAMConsumption% GEQ %RAMLimit% TASKKILL /IM %procName% 
+0

好极了!如果6GB会有限制,RAMLimit会是什么?根据我的理解,显示的内存使用情况是Kb。对吗?如果有多个相同名称的进程在运行,是否有可能杀死基于PID消耗更多内存的特定进程?如果可能的话,你可以扩展上面的代码来处理它吗?谢谢你的帮助。! – user2817712