标题: [系统相关] [已解决]bat批处理实现:检测所有进程cpu占有率的总和超过40%,就执行某个代码。 [打印本页]
作者: ygqiang 时间: 2012-8-29 13:20 标题: [已解决]bat批处理实现:检测所有进程cpu占有率的总和超过40%,就执行某个代码。
本帖最后由 ygqiang 于 2012-8-29 17:50 编辑
bat批处理实现:检测所有进程cpu占有率的总和超过40%,就执行某个代码。- set Services1=mssqlserver
-
- for /f "tokens=2 delims==" %%a in ('wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value
- ^| findstr "PercentProcessorTime"') do (
- set CPUUsage=%%a
- )
-
- if %CPUUsage% geq 40 (
- net stop %Services1%
- ping 127.0.0.1 -n 1 >nul 2>nul
- net start %Services1%
-
- )
-
- exit
复制代码
上面这个代码,测试是没有问题。
如果再加上下面这个判断时间范围的代码,测试也能通过。(在规定时间范围内,cpu总的占用超过40%,就执行停止、开启sql数据库操作)。- :begin1
-
- ping 127.0.0.1 -n 600 >nul 2>nul
-
- :begin2
-
- if %time:~0,2% geq 11 (if %time:~3,2% leq 15 goto :stat)
-
- if %time:~0,2% geq 17 (if %time:~3,2% leq 20 goto :stat)
-
- goto :begin1
-
- :stat
-
- set Services1=mssqlserver
-
- for /f "tokens=2 delims==" %%a in ('wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value
- ^| findstr "PercentProcessorTime"') do (
- set CPUUsage=%%a
- )
-
- if %CPUUsage% geq 40 (
- net stop %Services1%
- ping 127.0.0.1 -n 1 >nul 2>nul
- net start %Services1%
-
- )
-
-
- ping 127.0.0.1 -n 10 >nul 2>nul
-
- goto :begin2
复制代码
作者: ygqiang 时间: 2012-8-29 15:54
以上代码,是检测的所有进程占用cpu总和的%比
我想实现的是:用bat批处理 检测某个进程占用cpu的%比
作者: forfiles 时间: 2012-8-29 16:35
回复 2# ygqiang
http://www.bathome.net/thread-18768-1-1.html
作者: ygqiang 时间: 2012-8-29 17:45
回复 ygqiang
forfiles 发表于 2012-8-29 16:35
多谢了。。。。
可惜是vbs代码。。
作者: ygqiang 时间: 2012-8-29 17:49
回复 ygqiang
forfiles 发表于 2012-8-29 16:35
多谢。。。
测试代码。。。
作者: cjiabing 时间: 2012-8-29 20:18
建议使用tasklist、taskkill命令的筛选器!~
http://bbs.bathome.net/thread-11052-1-1.html- 筛选器:
- 筛选器名 有效操作符 有效值
- ----------- --------------- --------------
- STATUS eq, ne 正在运行 | 没有响应
- IMAGENAME eq, ne 图像名
- PID eq, ne, gt, lt, ge, le PID 值
- SESSION eq, ne, gt, lt, ge, le 会话编号
- SESSIONNAME eq, ne 会话名
- CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
- hh:mm:ss。
- hh - 时,
- mm - 分,ss - 秒
- MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量(KB)
- USERNAME eq, ne 用户名,格式为 [domain\]user
-
- SERVICES eq, ne 服务名
- WINDOWTITLE eq, ne 窗口标题
- MODULES eq, ne DLL 名
复制代码
作者: IUnknown 时间: 2012-8-29 20:44
自古道:野花总比家花香,看来不是没有道理的。
批处理如何查看指定进程的CPU使用率?
http://www.bathome.net/thread-6303-1-1.html
作者: forfiles 时间: 2012-8-30 15:03
回复 6# cjiabing
楼主是要获取某个进程的CPU占用率,你那个帖子有这功能?
作者: forfiles 时间: 2012-8-30 15:06
回复 4# ygqiang
没有什么好可惜的。BAT搞不定的就想其它办法呗,何必非在一棵树上吊死,多试几棵吧。
作者: cjiabing 时间: 2012-8-30 18:47
回复 8# forfiles
看错,只有内存占有率和CPU时间,而没有CPU占有率,看来是个问题!~
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |