2017-11-08 5 views
0

Ich versuche, einen CPU-Taktgeschwindigkeitstracker zu machen, aber ich brauche etwas Hilfe auf dem Code.Ich versuche, CPU-Taktgeschwindigkeit kontinuierlich im Stapel zu melden

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 

Ich habe Interesse an so etwas wie dies bekommen:

CurrentClockSpeed 
2401 

nicht diese (der Code Ich versuche, gibt diese zu verwenden):

CurrentClockSpeed 
2401 


CurrentClockSpeed 
2401 


CurrentClockSpeed 
2401 


CurrentClockSpeed 
2401 

Können Sie mir bitte helfen mich?

+0

Verwenden Sie den Befehl 'CLS' nach Ihrem Label': a'. – Squashman

Antwort

1

wmic hat eine hässliche Linie endet (eine zusätzliche CR), die regelmäßig Probleme macht. In Ihrem Fall macht es die Arbeit für Sie:

@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 

Sie sollten wmic Ausgabe einer Zeile (wmic kehrt einige leere Zeilen zu)
(I choosed einen anderen Wert (LoadPercentage) etwas passieren lassen) -Filter

Ich weise den Wert (einschließlich der zusätzlichen CR) einer Variablen zu, schreibe dann [Variable minus CR] drei Leerzeichen und das [letzte Zeichen von value] (das ist die CR). Die drei Leerzeichen sind notwendig, um die verbleibenden Zeichen zu überschreiben, wenn der neue Wert kürzer als der alte ist.

+0

Die erste Iteration der Ausgabe wird als 'U-Load:' angezeigt. – Squashman

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

der Wert ist falsch, wenn der vorherige Wert länger war (alt = '1234', neu = '98' zeigt '9834') – Stephan

+0

@Stephan: Sie haben Recht ... Fixed! ** ':)' ** – Aacini

+0

das macht unsere Codes fast identisch ':)' (nur verschiedene Methoden, um die 'CR') – Stephan