zensbert
Goto Top

Systeminfo per Batch in Variable schreiben

Hi,
ihr kennt ja das kleine cmd-tool systeminfo, was einem allerhand infos anzeigt und bei jedem windows dabei ist.. ich brauch den inhalt einer info in einer variable, kann mir da mal jemand helfen?

geht um

Z:\Daten\systeminfo |find "Systemmodell:"   

also Systemmodell, den wert ohne die Leerzeichen und ohne das "Systemmodell:" vorne dran.

danke
Thomas

Content-ID: 131165

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

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

paulepank
paulepank 07.12.2009 um 19:31:32 Uhr
Goto Top
Hallo Thomas,
mit find bist du auf dem Holzweg.

so geht es in einer Batch:
for /f "tokens=2" %%i in ('systeminfo^|findstr /i systemmodell') do @set modell=%%i  

cu paulepank
Biber
Biber 07.12.2009 um 19:40:25 Uhr
Goto Top
Moin chizophren,

ergänzend zu paulepank - so ginge es am CMD-Prompt als Demo::
>for /f "tokens=1,*" %i in ('Systeminfo^|find "Systemmodell"') do @echo set "Systemmodell=%j"


Im Batch mit jeweils zwei Prozentzeichen vor den Laufvariablen i und j (%%i statt %i; %%j statt %j)

Achtung: der als "Systemmodell" gelieferte Rückgabewert ist IMMER 30 Zeichen lang-- du hast als in der Variablen IMMER ein paar trailing blanks mit dabei.

Grüße
Biber
zensbert
zensbert 07.12.2009 um 19:42:12 Uhr
Goto Top
klappt schon ganz gut, nur ist dann bei mir in der modell variable nur "Amilo" und nicht "Amilo Pro XXXX", weisst du da weiter?
danke schon im voraus^^
zensbert
zensbert 07.12.2009 um 19:46:43 Uhr
Goto Top
so wird zumindest der ausgabe nach alles in die variable geschrieben, auch das nach dem leerzeichen, nur wenn ich die variable ausgebe per echo ist sie leer..? danke.. wie immer!
paulepank
paulepank 07.12.2009 um 20:15:43 Uhr
Goto Top
T'schuldigung,

bei mir wars nur ein Wort. Als schnellen Workaround (muß jetzt erstmal 'ne Kochsendung sehen) bis zu vier Worte:
for /f "tokens=2-5" %%i in ('systeminfo^|findstr /i systemmodell') do @set "modell=%%i %%j %%k %%l"  

cu paulepank
Biber
Biber 07.12.2009 um 20:32:46 Uhr
Goto Top
Moin chizophren,

was ich immer mit "Demo am CMd-Prompt" meine ist: Das, was eigentlich passieren würde wird nur angezeigt (== mit @echo).

Also noch mal in epischer Breite:
Demo/proof-of-concept am CMD-Prompt:
>for /f "tokens=1,*" %i in ('Systeminfo^|find "Systemmodell"') do @echo set "Systemmodell=%j"

Wenn und falls das deinen Erwartungen entspricht, dann wird in einer Batchdatei daraus:
for /f "tokens=1,*" %%i in ('Systeminfo^|find "Systemmodell"') do set "Systemmodell=%%j"
[ Prozentzeichen vor den Laufvariablen verdoppelt; "@echo" ersatzlos weggefallen.]

Grüße
Biber
zensbert
zensbert 07.12.2009 um 22:38:46 Uhr
Goto Top
vielen dank an biber und paulepank^^ hat geklappt