Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理脚本获取cpu利用率百分比_Batch File - Fatal编程技术网

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格式输出一个传统字段,因此,所需的数据不在行的末尾,并且该值将不包括结尾CR

No,它工作得更好,因为在变量内容中找到第一个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^> 
)