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

[系统相关] 批处理如何监控进程达到一定个数并杀掉指定进程?

监控进程全局进程或者是指定进程 当进程数大于100时关闭指定进程

当进程数大于100时关闭哪个指定进程?
Do All in Command Line

TOP

:t
set n=
For /F %%i in ('tasklist') do set/a n+=1
if %n% gtr 102 taskkill /f /im (要结束进程名)
ping -n 9 127.1 >nul
goto t

102就是限定100个进程数,因为tasklist命令前面有两行不是进程的。

TOP

不是很记得tasklist的输出格式了,大概是这样吧!

[ 本帖最后由 crartor 于 2010-3-10 09:54 编辑 ]

TOP

原帖由 crartor 于 2010-3-10 09:51 发表
:t
set n=
For /F %%i in ('tasklist') do set/a n+=1
if %n% gtr 102 taskkill /f /im (要结束进程名)
ping -n 9 127.1 >nul
goto t

102就是限定100个进程数,因为tasklist命令前面有两行不是进程的。




谢谢代码很好用

TOP

  1. @echo off
  2. :::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3. :: 多少秒检测进程一次
  4. set Time=60
  5. :: 被监视的进程。监视所有填 *,多个进程用空格分开
  6. set Monitor=*
  7. :: 监视数量
  8. set N=100
  9. :: 要结束的进程,多个进程用空格分开
  10. set Kill=notepad.exe
  11. :::::::::::::::::::::::::::::::::::::::::::::::::::::::
  12. set Kill=/im %Kill: = /im %
  13. if "%Monitor%"=="*" set Monitor=K
  14. set /a Time *= 1000, N -= 2
  15. echo WScript.Sleep %Time% > %temp%\Sleep.vbs
  16. :Loop
  17. set var=
  18. %temp%\Sleep.vbs
  19. for /f %%a in (' "tasklist /nh | findstr /li "%Monitor%" 2>nul" ') do (
  20.     set /a var += 1
  21. )
  22. if "%var%" gtr "%N%" taskkill /f %Kill% >nul 2>nul
  23. goto Loop
复制代码

TOP

建议用VBS....

TOP

BAT不是挺方便的么,干嘛用VBS呢?
Do All in Command Line

TOP

监控类建议使用vbs,bat做监控占资源

TOP

返回列表