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-Key: 115425

Url: https://administrator.de/contentid/115425

Printed on: April 19, 2024 at 22:04 o'clock

Mitglied: 77559
77559 May 06, 2009 at 13:42:46 (UTC)
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
Member: paulepank
paulepank May 06, 2009 at 14:41:46 (UTC)
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
Member: WiSch
WiSch May 06, 2009 at 20:21:48 (UTC)
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... ;(
Member: paulepank
paulepank May 06, 2009 at 20:54:41 (UTC)
Goto Top
Zu 3. Na dann will ich mal Besserung geloben...
na dann fang mal gleich an, denn das gehört auch zu einem How can I mark a post as solved? face-smile
Member: WiSch
WiSch May 06, 2009 at 21:02:12 (UTC)
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.