尝试批量连续报告CPU时钟速度

问题描述 投票:0回答:3

我正在尝试制作一个 CPU 时钟速度跟踪器,但我需要一些代码方面的帮助。

setlocal enableextensions enabledelayedexpansion
:a
for /f %%a in ('copy /Z "%~dpf0" nul') do set "ASCII_13=%%a"
set /p "=!ASCII_13!" <NUL
wmic cpu get CurrentClockSpeed
goto a

我有兴趣得到这样的东西:

CurrentClockSpeed
2401

不是这个(我尝试使用的代码输出这个):

CurrentClockSpeed
2401


CurrentClockSpeed
2401


CurrentClockSpeed
2401


CurrentClockSpeed
2401

你能帮我吗?

batch-file cpu wmic
3个回答
1
投票

wmic
有一个丑陋的行结尾(额外的
CR
),经常会带来麻烦。就您而言,它可以为您完成工作:

@echo off
setlocal EnableDelayedExpansion
:loop
for /f "delims=" %%a in ('wmic cpu get LoadPercentage /value ^|find "="') do (
  set "value=%%a"
  <nul set /p "=!value:~0,-1!  !value:~-1!"
)
goto :loop

您应该将

wmic
输出过滤到一行(
wmic
也会返回一些空行)
(我选择了另一个值(LoadPercentage)来让某些事情发生)

我将值(包括附加的

CR
)分配给一个变量,然后写入[变量减去CR]三个空格和[
value
的最后一个字符](即
CR
)。 当新值比旧值短时,需要三个空格来覆盖剩余字符。


0
投票
@echo off
setlocal EnableDelayedExpansion

for /f %%a in ('copy /Z "%~dpf0" nul') do set "ASCII_13=%%a"
echo CurrentClockSpeed

:a
for /F "tokens=1,2" %%a in ('wmic cpu get CurrentClockSpeed') do if "%%b" neq "" set "value=%%a"
set /p "=%value%    !ASCII_13!" <NUL
goto a

0
投票

只需创建一个bat文件并将以下代码粘贴到其中,然后就可以运行它,希望这会有所帮助。 问候

wmic cpu 获取当前时钟速度、最大时钟速度、当前电压、核心数、负载百分比 /every:5

© www.soinside.com 2019 - 2024. All rights reserved.