masterbaiter
Goto Top

WMIC Serial Output in Variable

Mit diesem Befehl lässt sich die Ausgabe aus WMIC in eine Variable stecken:

In diesem Beispiel ist es die Seriennummer.
for /F "skip=2 tokens=2 delims=," %%A in ('wmic systemenclosure get serialnumber /FORMAT:csv') do (set "serial=%%A")  
Beachte! :

Dieser Befehlt gibt folgendes aus
C:\WINDOWS\system32>wmic systemenclosure get serialnumber
SerialNumber
S4ETAW2
...nur die zweite Zeile wird in die Variable genommen, dafür sorgt "skip=2 tokens=2 delims=,"

Gruß

Content-ID: 240464

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

Ausgedruckt am: 13.11.2024 um 07:11 Uhr

Biber
Biber 10.06.2014, aktualisiert am 11.06.2014 um 16:15:27 Uhr
Goto Top
Moin MasterBaiter,

danke dir für den Tipp.

Nur als Ergänzung:
Ja, der Befehl wmic systemenclosure get serialnumber ohne "/Format:csv" gibt nur EIN Feld aus pro Zeile (wie angefordert), nämlich "SerialNumber".
Leider nicht wirklich in einer FOR/F- Anweisung verwertbar, weil da eine vollkommen sinnfreie dritte Leerzeile mit verdrehtem Zeilenumbruch dranhängt.
Es wird also EIN Wert pro Zeile ausgegeben (Yipieeh!), also erste Zeile "Key" = "SerialNumber" und zweite Zeile "Value" ="S4ETAW2",
danach aber noch eine dritte Zeile ohne Inhalt (Raum für Notizen oder sowas).

Bei der Formatierung als "/Format:csv" bekommst du auch drei Zeilen (eine leere diesmal als erstes, eine für "Key", eine für "Value") , aber auch einen zweiten Key/Value-Wert ("Node") pro Zeile, nach dem du nicht explizit gefragt hast.


Die ersten beiden Zeilen (die sinnfreie Leerzeile und die Titelzeile mit "Node,SerialNumber") überliest du mit "skip=2" und nimmst nur die dritte Zeile als Input.
Den ersten Spaltenwert (Feld "Node") überliest auch richtigerweise mit "tokens=2", nur die Erklärung dafür hätte ein wenig ausführlicher sein dürfen.

Grüße
Biber
MasterBaiter
MasterBaiter 11.06.2014 aktualisiert um 11:23:35 Uhr
Goto Top
Danke für dein Kommentar, bringt mehr Licht in die Sache face-smile
colinardo
colinardo 11.06.2014 aktualisiert um 11:27:09 Uhr
Goto Top
Hi,
alternative Variante mit /format:list und findstr:
Freier Speicher eines entfernten PCs abrufen

Grüße Uwe