标题: [已解决]判断进程使用内存大于指定阀值重启程序 [打印本页]
作者: 樵夫 时间: 2017-8-7 16:27 标题: [已解决]判断进程使用内存大于指定阀值重启程序
本帖最后由 樵夫 于 2017-8-21 15:59 编辑
::该批处理使用于 判断进程内存大于指定的阀值重启该程序使用
@echo off
for /f "delims=" %%a in ('wmic PROCESS where "name='chrome.exe(进程名称)'" get ExecutablePath^,ProcessId^,WorkingSetSize /value^|find "="') do set "%%a"
>"%tmp%\$$.vbs" echo;if %WorkingSetSize%/1048576 ^> 800(内存阀值) then:WSH.echo 1:else:WSH.echo 0
echo;%WorkingSetSize% B
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\$$.vbs"') do set check=%%a
if "%check%" equ "1" (
call C:\Restart.bat ::(调用外部批处理重启进程)
)
pause
作者: PS2.0 时间: 2017-8-7 16:51
进程名是已知的还是未知的?
作者: 樵夫 时间: 2017-8-7 17:43
回复 2# PS2.0
已知的进程名称
作者: qazplm 时间: 2017-8-7 18:46
- powershell "while(1){gps|?{$_.ProcessName -eq 'qq'}|%%{if(($_.WorkingSet/1048576) -gt 800){$_.Kill();start -FilePath $_.Path}};Start-Sleep -Seconds 1}"
复制代码
作者: qazplm 时间: 2017-8-7 19:22
- @echo off
- :1
- for /f "delims=" %%a in ('wmic PROCESS where "name='qq.exe'" get ExecutablePath^,ProcessId^,WorkingSetSize /value^|find "="') do set "%%a"
- >"%tmp%\$$.vbs" echo;if %WorkingSetSize%/1048576 ^> 800 then:WSH.echo 1:else:WSH.echo 0
- echo;%WorkingSetSize% B
- for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\$$.vbs"') do set check=%%a
- if "%check%" equ "1" (
- taskkill /f /pid %ProcessId% /t
- start "" "%ExecutablePath%"
- )
- >nul ping /n 2 127.1
- goto :1
复制代码
作者: 樵夫 时间: 2017-8-8 09:16
本帖最后由 樵夫 于 2017-8-8 16:11 编辑
.................................
作者: 樵夫 时间: 2017-8-8 10:20
本帖最后由 樵夫 于 2017-8-8 10:23 编辑
回复 5# qazplm
作者: 老刘1号 时间: 2017-8-8 14:09
人家辛辛苦苦写完了你就改需求?
为什么不早点想清楚?
作者: 523066680 时间: 2017-8-8 15:06
回复 8# 老刘1号
周瑜打黄盖,一个愿打,一个愿挨。
作者: 樵夫 时间: 2017-8-8 16:12
回复 8# 老刘1号
说的好像不给钱的一样
作者: /zhqsystem/zhq 时间: 2017-8-10 18:16
我去,....原贴呢?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |