标题: [文件操作] 批处理如何让内存占用达到多少百分比的时候关闭某个软件? [打印本页]
作者: heike045 时间: 2020-4-2 23:03 标题: 批处理如何让内存占用达到多少百分比的时候关闭某个软件?
本帖最后由 heike045 于 2020-4-4 16:37 编辑
批处理如何让内存占用达到多少百分比的时候关闭某个软件?
作者: went 时间: 2020-4-3 11:21
- @echo off
- %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
- REM name
- set "process=powershell.exe"
- REM memory(KB)
- set "m=73800"
- :loop
- echo %process%
- echo %m%KB
- echo.
- tasklist /fi "IMAGENAME eq %process%" | findstr /i "pid = %process%"
- taskkill /f /fi "IMAGENAME eq %process%" /fi "MEMUSAGE gt %m%"
- timeout /t 2 /nobreak >nul 2>nul & cls
- goto :loop
- pause&exit
复制代码
进程名和内存自行修改
作者: heike045 时间: 2020-4-3 11:30
回复 2# went
如果设置为60秒检测一次?
作者: went 时间: 2020-4-3 11:32
回复 3# heike045
/t后面是秒数,当前是2秒检查一次复制代码
作者: heike045 时间: 2020-4-3 11:36
回复 4# went
非常感谢!
作者: heike045 时间: 2020-4-3 11:46
回复 4# went
有个问题,内存都还没达到设置的值,怎么就自动结束进程了?
作者: went 时间: 2020-4-3 11:57
回复 6# heike045
显示和结束进程命令之间有延迟吧,实际上已经达到了,不然不会关闭
作者: heike045 时间: 2020-4-3 12:03
回复 7# went
好的 谢谢!
作者: heike045 时间: 2020-4-3 12:33
回复 7# went
请教大神,如何把3个BAT的内容 融入到同一个BAT中,先执行第一个代码,然后延迟60秒执行第二个代码,然后延迟60秒执行第三个代码,然后延迟60秒再跳回去第一个代码,如此循环
作者: went 时间: 2020-4-3 13:06
- @echo off
- %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
- :begin
- REM CODE 1
- timeout /t 60 /nobreak >nul 2>nul
- REM CODE 2
- timeout /t 60 /nobreak >nul 2>nul
- REM CODE 3
- timeout /t 60 /nobreak >nul 2>nul
- goto :begin
- pause&exit
复制代码
回复 9# heike045
REM 所在行替换成你的代码,提权代码须放在开头
作者: heike045 时间: 2020-4-3 13:24
回复 10# went
有点拼不起来 能否帮我弄一下,按照文件顺序来。
作者: went 时间: 2020-4-3 13:45
本帖最后由 went 于 2020-4-3 13:54 编辑
- @echo off&color 2f
- %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
- set "s=60"
- :loop
- REM --------------------------------CODE1-----------------------------------
- taskkill /f /im "werfault.exe"
- timeout /t %s% /nobreak >nul 2>nul
- REM --------------------------------CODE2-----------------------------------
- tasklist /FI "username eq dc2-user" | find /C "vds-qt.exe" > temp.txt
- set /p num= < temp.txt
- del /F temp.txt
- echo %num%
- if "%num%" == "0" del /F C:\Users\dc2-user\AppData\Roaming\VDS\mncache.dat C:\Users\dc2-user\AppData\Roaming\VDS\mnpayments.dat && start /D "C:\Program Files\vds" vds-qt.exe
- timeout /t %s% /nobreak >nul 2>nul
- REM --------------------------------CODE3-----------------------------------
- REM name
- set "process=vds-qt.exe"
- REM memory(KB)
- set "m=6144000"
- echo %process%
- echo %m%KB
- echo.
- tasklist /fi "IMAGENAME eq %process%" | findstr /i "pid = %process%"
- taskkill /f /fi "IMAGENAME eq %process%" /fi "MEMUSAGE gt %m%"
- timeout /t %s% /nobreak >nul 2>nul
- cls & goto :loop
- pause&exit
复制代码
回复 11# heike045
作者: heike045 时间: 2020-4-3 13:51
回复 12# went
太完美了 谢谢大神!
作者: heike045 时间: 2020-4-3 15:00
回复 12# went
遇到个问题,上面那个自动关闭进程的 只会把软件关掉 不会把进程结束释放内存
作者: heike045 时间: 2020-4-3 21:35
回复 12# went
在吗 大神。。。。。
作者: went 时间: 2020-4-3 22:43
回复 15# heike045
不好意思,我也不知道
作者: heike045 时间: 2020-4-4 16:24 标题: 如何用批处理让内存占用数大于设定值时 关闭某个进程释放内存?
本帖最后由 heike045 于 2020-4-4 16:27 编辑
如何用批处理让内存占用数大于设定值时 关闭某个进程释放内存?
作者: wujunkai 时间: 2020-4-4 16:28
回复 1# heike045
http://www.bathome.net/thread-55285-1-1.html拿这个改一下就可以了
作者: heike045 时间: 2020-4-4 16:32
回复 2# wujunkai
怎么改 能否请教下大神, 他这个没法自动结束进程释放内存,只会关闭软件
作者: wujunkai 时间: 2020-4-4 16:35
回复 19# heike045
额,你是不是对进程有什么误解。
一般情况下,软件关闭,对应的进程就会关闭
作者: Batcher 时间: 2020-4-6 10:44
回复 19# heike045
能否详细说明一下【他这个没法自动结束进程释放内存】,请把你的测试用例和测试结果分别发出来看看。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |