Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren
Hallo zusammen,
ich bin aktuell daran ein Batch-Skript zu erstellen, worin ich:
- Prozess mit aktueller CPU-Last auslese
- Anhand des Wertes entscheide, ob der Prozess noch arbeitet oder das Tool neu gestartet werden muss
Aktuell nutze ich folgenden Befehl:
wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime | findstr /i /c:vmware-vmx
und erhalte folgende Ausgabe:
"
vmware-vmx 97
"
Die Ausgabe beinhaltet 2 Zeilen und nach "vmware-vmx" und "97" viele Leerzeilen.
Wie bekomme ich es hin, dass der 2. Wert (in dem Fall 97) ohne Leerzeichen genommen wird und als Varaible gesetzt wird, damit ich diesen auswerten und ggfs. die Prüfung wiederhole (möchte es solange der Wert größer 0 ist.
Der Wert kann sowohl 1, 2 oder 3 Stellen beinhalten.
Ich muss gestehen, dass ich da einfach nicht weiterkomme
Danke an alle und Grüße
Tralveller
ich bin aktuell daran ein Batch-Skript zu erstellen, worin ich:
- Prozess mit aktueller CPU-Last auslese
- Anhand des Wertes entscheide, ob der Prozess noch arbeitet oder das Tool neu gestartet werden muss
Aktuell nutze ich folgenden Befehl:
wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime | findstr /i /c:vmware-vmx
und erhalte folgende Ausgabe:
"
vmware-vmx 97
"
Die Ausgabe beinhaltet 2 Zeilen und nach "vmware-vmx" und "97" viele Leerzeilen.
Wie bekomme ich es hin, dass der 2. Wert (in dem Fall 97) ohne Leerzeichen genommen wird und als Varaible gesetzt wird, damit ich diesen auswerten und ggfs. die Prüfung wiederhole (möchte es solange der Wert größer 0 ist.
Der Wert kann sowohl 1, 2 oder 3 Stellen beinhalten.
Ich muss gestehen, dass ich da einfach nicht weiterkomme
Danke an alle und Grüße
Tralveller
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 333056
Url: https://administrator.de/contentid/333056
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo tralveller
Du kannst 1) gleich im WQL Statement per WHERE filtern und 2) das Ergebnis mit Option /value in ein gefälliges Eigenschaft=Wert Format bringen. In FOR /F Schleifen verarbeitet, kommst du schnell zum Ergebnis in einer Variable.
Grüße
rubberman
Du kannst 1) gleich im WQL Statement per WHERE filtern und 2) das Ergebnis mit Option /value in ein gefälliges Eigenschaft=Wert Format bringen. In FOR /F Schleifen verarbeitet, kommst du schnell zum Ergebnis in einer Variable.
for /f %%i in (
'wmic path Win32_PerfFormattedData_PerfProc_Process where "Name='vmware-vmx'" get PercentProcessorTime /value'
) do for /f "tokens=2 delims==" %%j in ("%%i") do set "percentage=%%j"
rubberman
Anhand des Wertes entscheide, ob der Prozess noch arbeitet oder das Tool neu gestartet werden muss
Dann doch besser soProgramm reagiert nicht - per Powershell neu starten?
Gruß p.