批处理获取某个进程的CPU使用率

目前我已经做了一部分工作我没有找到一步求出CPU使用率的方法,只能用内核时间/用户时间来计算某个进程的CPU使用率@echooffTITLERelayServerChec... 目前我已经做了一部分工作
我没有找到一步求出CPU使用率的方法,只能用内核时间/用户时间来计算某个进程的CPU使用率

@echo off
TITLE RelayServer Check
wmic process where name="explorer.exe" get KernelModeTime,UserModeTime /value > C:\cputime.txt
for /f "tokens=1* delims=" %%a in ('findstr /n .* C:\cputime.txt') do if not "%%b"=="" set st%%a=%%b
goto END
....
:END

PS.这段代码是有问题的
wmic process where name="explorer.exe" get KernelModeTime,UserModeTime /value > C:\cputime.txt
这一句已经把 explorer.exe 进程的内核态时间和用户态时间写入到 C:\cputime.txt 中了
格式类似于

KernelModeTime=1334062500
UserModeTime=295937500

但是cputime.txt文件前两行是空行
后一句
for /f "tokens=1* delims=" %%a in ('findstr /n .* C:\cputime.txt') do if not "%%b"=="" set st%%a=%%b
本应该读出数据来然后再解析的....不过老出错,我也不清楚什么原因
希望高手出手
将 内核态时间 和 用户态时间 分别赋值给两个变量~_~ 最好是能把值直接付给变量
如果顺手计算一下 KernelModeTime / UserModeTime 就更好了~_~
展开
 我来答
JooKin
2011-07-17 · TA获得超过687个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:383万
展开全部
这个delims=错了。。还有就是wmic有时候产生不是简单的空行或空格(要在16进制编辑器里才能看到),加上Findstr的BUG,所以经常出现不是想要的结果。。

@echo off&Setlocal EnableDelayedExpansion
TITLE RelayServer Check
for /f "skip=2 tokens=2 delims==" %%i in (
'wmic process where "name='explorer.exe'" get KernelModeTime^,UserModeTime /value'
) do (
set "x=!x! %%i"
)
call :Div %x% 5
>nul pause&exit /b
:Div dividend divisor [decimal] ||@by zj
::不支持超大数和浮点
Setlocal EnableDelayedExpansion
set "dnd=%~1"&set "dsr=%~2"&set "dec=%~3"
if %dsr% equ 0 echo 除数不能是0!&goto :EOF
set/a x=%dnd%/%dsr%
if %x% equ 0 (
if %dnd% lss 0 (if %dsr% gtr 0 set "x=-0") else if %dsr% lss 0 set "x=-0"
)
if not defined dec set "dec=8"
if %dec% equ 0 echo %x%&goto :EOF
for /l %%i in (1 1 %dec%) do (
set/a dnd=^(a=!dnd!%%%dsr%^)*10,b=dnd/%dsr%
set "y=!y!!b!"
)
echo CPU使用率:%x%.%y:-=%%%
Endlocal
goto :EOF

PS:如非必要建议少用wmic
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
快又稳
2024-10-28 广告
在Linux环境下配置基于域名的虚拟主机,需安装Apache或Nginx等Web服务器,并编辑配置文件。以Apache为例,需创建虚拟主机配置文件,指定域名、文档根目录等,然后启用该配置文件并重启Apache服务。同样,Nginx也需在相应... 点击进入详情页
本回答由快又稳提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式