Batch file 使用批处理脚本获取cpu利用率百分比
我已经在命令提示符下执行了下面的命令 输入:Batch file 使用批处理脚本获取cpu利用率百分比,batch-file,Batch File,我已经在命令提示符下执行了下面的命令 输入: C:\>@for /f "skip=1" %p in ('wmic cpu get loadpercentage') do @echo %p% 8% % 我编写的代码在批处理脚本中仅获得8%,如下所示 call :Harddisk call :CPU Echo ^</TABLE^> ^</BODY^> ^</HTML^> >> %opfile% pause exit /b
C:\>@for /f "skip=1" %p in ('wmic cpu get loadpercentage') do @echo %p%
8%
%
我编写的代码在批处理脚本中仅获得8%,如下所示
call :Harddisk
call :CPU
Echo ^</TABLE^> ^</BODY^> ^</HTML^> >> %opfile%
pause
exit /b
:CPU
set wmih=@for /f skip=1 %p in ('wmic cpu get loadpercentage') do @echo %p% |Find /c /v ":"
ECHO wmih
for /f "tokens=1,2,3,4,5" %%a in ('"%wmih%"') do (
Echo ^<TR^> ^<TD^> >> %opfile%
Echo CPU Utilization: %%a >> %opfile%
Echo ^</TD^> ^</TR^> >> %opfile%
)
exit /b
调用:硬盘
呼叫:CPU
Echo^^>>%opfile%
暂停
退出/b
:CPU
设置wmih=@for/f skip=1%p in('wmic cpu get loadpercentage')do@echo%p%| Find/c/v:“
回声wmih
对于(“%wmih%”中的/f“令牌=1,2,3,4,5”%%a,请执行以下操作(
Echo^^>>%opfile%
回显CPU利用率:%%a>>%opfile%
Echo^^>>%opfile%
)
退出/b
我没有得到正确的输出。请帮我整理一下
谢谢 只是为了保持你的结构
for /f "tokens=2 delims==" %%i in ('wmic cpu get loadpercentage /value ^|find "="') do echo set p=%%i
set p=%p:~0,-1%
echo %p%
:CPU
set "wmih=@for /f "usebackq skip^^^=2 tokens^^^=2 delims^^^=^^^," %%p in (`wmic cpu get loadpercentage^^^,version /format^^^:csv`) do @echo(%%p%%"
ECHO %wmih%
for /f "tokens=1,2,3,4,5" %%a in ('"%wmih%"') do (
>>%opfile% Echo ^<TR^> ^<TD^>
>>%opfile% Echo CPU Utilization: %%a
>>%opfile% Echo ^</TD^> ^</TR^>
)
在这两种情况下,为了删除检索值末尾的传统CR字符,查询请求以csv格式输出一个传统字段,因此,所需的数据不在行的末尾,并且该值将不包括结尾CRNo,它工作得更好,因为在变量内容中找到第一个CR时,
echo%p%
将结束其工作。在这种情况下,find
不会更改行尾。要进行测试,请在代码cmd/v:on/c“echo!p!…!p!”
后包含,并查看output.grrr。我会讨厌那个丑陋的wmic
输出。。。所以%p%
仍然包含这个。但是可以移除。更改了我的代码。
:CPU
for /f "skip=2 tokens=2 delims=," %%a in (
'wmic cpu get loadpercentage^,version /format^:csv'
) do (
>>%opfile% Echo ^<TR^> ^<TD^>
>>%opfile% Echo CPU Utilization: %%a%%
>>%opfile% Echo ^</TD^> ^</TR^>
)