标题: [系统相关] 如何用批处理命令监控一个进程的内存使用量? [打印本页]
作者: cogool 时间: 2017-3-4 17:38 标题: 如何用批处理命令监控一个进程的内存使用量?
[新人]求助如何用批命令监控一个进程(如QQ)的内存使用量,并当改进程内存使用达到一定数值(如240,560K.)自动重启该进程
查论坛资料只写了一部分,剩下的不知道该怎么写 请高手们指点下谢谢- @set prc_name=QQ.exe
- @for /f "tokens=5,6* delims= " %%i in ('tasklist ^|find "%prc_name%"') do @echo %prc_name% use memory %%i%%j.
复制代码
作者: Nsqs 时间: 2017-3-4 22:23
本帖最后由 Nsqs 于 2017-3-4 23:16 编辑
- @echo off
- set "w=%0"
- set "processname=QQ.exe"
- set n=100 %表示100MB%
- tasklist|findstr /i "%processname%" >nul 2>nul && goto r ||echo %processname% 进程不存在
- pause&exit
- :r
- set mb=0
- for /f "tokens=5 delims= " %%1 in ('tasklist^|findstr /i "%processname%"')do (
- set /a mb=1*%%1/1024
- )
- if %mb% geq %n% (
- echo %processname% 大于等于 %n% MB
- call:w
- )else (
- echo %processname% 在 %n% MB 以内
- )
- goto r
- :w
- for /f "tokens=1 delims=:" %%1 in ('findstr /n "^::VBS$" "%w%"')do set m=%%1
- more "%w%" +%m%>#
- echo %processname%|cscript -nologo -e:"vbs" "#" %重启%
- goto :eof
- ::VBS
- f=wsh.stdin.readline
- set wsc=createobject("wscript.shell")
- set fso=createobject("scripting.filesystemobject")
- set wmi=getobject("winmgmts:\\.\root\cimv2").execquery("select * from win32_process")
- for each list in wmi
- if list.name=f then
- list.terminate
- wsc.run chr(34)&list.executablepath&chr(34),,1
- end if
- next
- fso.deletefile wsh.scriptfullname
- wsh.sleep 6000000
复制代码
作者: cogool 时间: 2017-3-4 22:55
谢谢 我试一下
作者: cogool 时间: 2017-3-4 23:06
回复 2# Nsqs
谢谢帮助 能不能把脚本修改成 先杀掉进程后在重启进程,每10分钟检查一次
作者: Nsqs 时间: 2017-3-4 23:12
回复 4# cogool
已更改
作者: cogool 时间: 2017-3-6 08:46
杀毒软件提示木马这个怎么处理呢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |