wisch
Goto Top

Abfrage der CPU-Auslastung per Batch bringt zusätzliche Leerzeile?

Ich möchte per Batch-Datei die CPU-Auslastung überprüfen.
Dazu habe ich hier folgenden Beitrag gefunden: CPU Auslastung per Skript abfragen

Der letzte Kommentar funktioniert auch, bringt bei mir aber mehr als das gewünschte Ergebnis...

Hier mein Code
FOR /F "tokens=1,2 skip=1 delims= " %%i IN ('"WMIC CPU GET LoadPercentage, DeviceID"') DO (
IF %%j LSS 90 echo ------- %date% %time% - Prozessor %%i hat %%j %%% Auslastung 
IF %%j GEQ 90 echo PROBLEM %date% %time% - Prozessor %%i hat %%j %%% Auslastung 
)

Als Ergebnis bekomme ich aber nicht eine, sondern zwei Zeilen:
------- 06.05.2009 14:04:44,72 - Prozessor CPU0 hat 0 % Auslastung  
------- 06.05.2009 14:04:44,72 - Prozessor 
 hat  % Auslastung

Das System hat nur eine CPU, daran dürfte es also nicht liegen...

Wenn ich meinen Code so abändere
FOR /F "tokens=1,2 skip=1 delims= " %%i IN ('"WMIC CPU GET LoadPercentage, DeviceID"') DO (
echo -------  %date% %time% - Prozessor %%i hat %%j %%% Auslastung 
)

bekomme ich trotzdem die obige Ausgabe, also an einer falschen if-Abfrage kann es auch nicht liegen!?


Wie unterdrücke ich die sinnfreie zweite Zeile?

Danke.

Content-ID: 115425

Url: https://administrator.de/forum/abfrage-der-cpu-auslastung-per-batch-bringt-zusaetzliche-leerzeile-115425.html

Ausgedruckt am: 28.12.2024 um 12:12 Uhr

77559
77559 06.05.2009 um 15:42:46 Uhr
Goto Top
Wmic schmeisst leider eigentlich immer Unicode mit BOM raus, das erschwert die Verarbeitung und deine get Parameter dürfen kein Leerzeichen zwischen dem komma und Parameter haben.

HTH

Gruß
LotPings
paulepank
paulepank 06.05.2009 um 16:41:46 Uhr
Goto Top
Hallo AVEHilfe,

vorweg:

1.Lösungen für XP müssen nicht zwangsläufig unter Vista oder schlimmeres laufen. Deine zitierte Lösung war für XP.
2. Blindes abtippen des Codes macht das Kraut nicht fett.
3. Es sollte immer das BS angegeben werden unter der die Batch laufen soll.

Hier ein Workaround für Vista (läuft auch unter XP)
WMIC CPU GET LoadPercentage,DeviceID >cpu.txt
FOR /F "tokens=1,2 skip=1" %%i IN ('type cpu.txt') DO (   
IF %%j LSS 90 echo ------- %date% %time% - Prozessor %%i hat %%j %% Auslastung  
IF %%j GEQ 90 echo PROBLEM %date% %time% - Prozessor %%i hat %%j %% Auslastung  
)

cu paulepank
WiSch
WiSch 06.05.2009 um 22:21:48 Uhr
Goto Top
Hallo paulepank.

Es läuft... danke.

Zu 1. Schon klar... gerade Vista macht da ja gerne mal was anders.
Zu 2. Auch richtig, aber diverse Versuche haben mich nicht weiter gebracht und ganz blind bin ich ja auch nicht unterwegs...
Zu 3. Na dann will ich mal Besserung geloben...

Schicker wäre es natürlich wenn es nicht erst in eine externe Datei geschrieben würde.
Da haben aber bisher alle meine Versuche nicht zur gewünschten einzeiligen Ausgabe geführt... ;(
paulepank
paulepank 06.05.2009 um 22:54:41 Uhr
Goto Top
Zu 3. Na dann will ich mal Besserung geloben...
na dann fang mal gleich an, denn das gehört auch zu einem Wie kann ich einen Beitrag als gelöst markieren? face-smile
WiSch
WiSch 06.05.2009 um 23:02:12 Uhr
Goto Top
Schlaumeier! :P

Vielleicht hat ja noch jemand die Lösung ohne externe Datei?
Wenn nicht, werde ich das morgen hier abschließen...

Gute Nacht.