批處理新手入門導讀[視頻教程]批處理基礎視頻教程[視頻教程]VBS基礎視頻教程
[批處理文件精品]批處理版照片整理器[批處理文件精品]純批處理備份&還原驅動在線第三方下載
返回列表 發帖

[文件操作] 批處理如何讓內存占用達到多少百分比的時候關閉某個軟件?

本帖最后由 heike045 于 2020-4-4 16:37 編輯

批處理如何讓內存占用達到多少百分比的時候關閉某個軟件?

  1. @echo off
  2. %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
  3. REM name
  4. set "process=powershell.exe"
  5. REM memory(KB)
  6. set "m=73800"
  7. :loop
  8. echo %process%
  9. echo %m%KB
  10. echo.
  11. tasklist /fi "IMAGENAME eq %process%" | findstr /i "pid = %process%"
  12. taskkill /f /fi "IMAGENAME eq %process%" /fi "MEMUSAGE gt %m%"
  13. timeout /t 2 /nobreak  >nul 2>nul & cls
  14. goto :loop
  15. pause&exit
復制代碼
進程名和內存自行修改

TOP

回復 2# went


    如果設置為60秒檢測一次?

TOP

回復 3# heike045

/t后面是秒數,當前是2秒檢查一次
  1. timeout /t 2 /nobreak
復制代碼

TOP

回復 4# went


    非常感謝!

TOP

回復 4# went

有個問題,內存都還沒達到設置的值,怎么就自動結束進程了?
   
附件: 您需要登錄才可以下載或查看附件。沒有帳號?注冊

TOP

回復 6# heike045


        顯示和結束進程命令之間有延遲吧,實際上已經達到了,不然不會關閉

TOP

回復 7# went


    好的 謝謝!

TOP

回復 7# went


    請教大神,如何把3個BAT的內容 融入到同一個BAT中,先執行第一個代碼,然后延遲60秒執行第二個代碼,然后延遲60秒執行第三個代碼,然后延遲60秒再跳回去第一個代碼,如此循環

TOP

  1. @echo off
  2. %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
  3. :begin
  4. REM CODE 1
  5. timeout /t 60 /nobreak  >nul 2>nul
  6. REM CODE 2
  7. timeout /t 60 /nobreak  >nul 2>nul
  8. REM CODE 3
  9. timeout /t 60 /nobreak  >nul 2>nul
  10. goto :begin
  11. pause&exit
復制代碼
回復 9# heike045
REM 所在行替換成你的代碼,提權代碼須放在開頭

TOP

回復 10# went


    有點拼不起來 能否幫我弄一下,按照文件順序來。
附件: 您需要登錄才可以下載或查看附件。沒有帳號?注冊

TOP

本帖最后由 went 于 2020-4-3 13:54 編輯
  1. @echo off&color 2f
  2. %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
  3. set "s=60"
  4. :loop
  5. REM --------------------------------CODE1-----------------------------------
  6. taskkill /f /im "werfault.exe"
  7. timeout /t %s% /nobreak  >nul 2>nul
  8. REM --------------------------------CODE2-----------------------------------
  9. tasklist /FI "username eq dc2-user" | find /C "vds-qt.exe" > temp.txt
  10. set /p num= < temp.txt
  11. del /F temp.txt
  12. echo %num%
  13. 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
  14. timeout /t %s% /nobreak  >nul 2>nul
  15. REM --------------------------------CODE3-----------------------------------
  16. REM name
  17. set "process=vds-qt.exe"
  18. REM memory(KB)
  19. set "m=6144000"
  20. echo %process%
  21. echo %m%KB
  22. echo.
  23. tasklist /fi "IMAGENAME eq %process%" | findstr /i "pid = %process%"
  24. taskkill /f /fi "IMAGENAME eq %process%" /fi "MEMUSAGE gt %m%"
  25. timeout /t %s% /nobreak  >nul 2>nul
  26. cls & goto :loop
  27. pause&exit
復制代碼
回復 11# heike045

TOP

回復 12# went


    太完美了 謝謝大神!

TOP

回復 12# went


    遇到個問題,上面那個自動關閉進程的  只會把軟件關掉 不會把進程結束釋放內存

TOP

回復 12# went


    在嗎 大神。。。。。

TOP

返回列表
36选7开奖结果今天福建