[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 如何用批处理命令监控一个进程的内存使用量?

[新人]求助如何用批命令监控一个进程(如QQ)的内存使用量,并当改进程内存使用达到一定数值(如240,560K.)自动重启该进程
查论坛资料只写了一部分,剩下的不知道该怎么写 请高手们指点下谢谢
  1. @set prc_name=QQ.exe
  2. @for /f "tokens=5,6* delims= " %%i in ('tasklist ^|find "%prc_name%"') do @echo %prc_name% use memory %%i%%j.
复制代码

本帖最后由 Nsqs 于 2017-3-4 23:16 编辑
  1. @echo off
  2. set "w=%0"
  3. set "processname=QQ.exe"
  4. set n=100 %表示100MB%
  5. tasklist|findstr /i "%processname%" >nul 2>nul  && goto r ||echo %processname% 进程不存在
  6. pause&exit
  7. :r
  8. set mb=0
  9. for /f "tokens=5 delims= " %%1 in ('tasklist^|findstr /i "%processname%"')do (
  10.     set /a mb=1*%%1/1024
  11. )
  12. if %mb% geq %n% (
  13.     echo %processname% 大于等于 %n% MB
  14.     call:w
  15. )else (
  16.     echo %processname% 在 %n% MB 以内
  17. )
  18. goto r
  19. :w
  20.     for /f "tokens=1 delims=:" %%1 in ('findstr /n "^::VBS$" "%w%"')do set m=%%1
  21.     more "%w%" +%m%>#
  22.     echo %processname%|cscript -nologo -e:"vbs" "#" %重启%
  23. goto :eof
  24. ::VBS
  25. f=wsh.stdin.readline
  26. set wsc=createobject("wscript.shell")
  27. set fso=createobject("scripting.filesystemobject")
  28. set wmi=getobject("winmgmts:\\.\root\cimv2").execquery("select * from win32_process")
  29. for each list in wmi
  30.     if list.name=f then
  31.         list.terminate
  32.         wsc.run chr(34)&list.executablepath&chr(34),,1
  33.     end if
  34. next
  35. fso.deletefile wsh.scriptfullname
  36. wsh.sleep 6000000
复制代码

TOP

谢谢 我试一下

TOP

回复 2# Nsqs
谢谢帮助 能不能把脚本修改成 先杀掉进程后在重启进程,每10分钟检查一次

TOP

回复 4# cogool


    已更改

TOP

杀毒软件提示木马这个怎么处理呢

TOP

返回列表