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

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

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

Member: paulepank
paulepank Dec 07, 2009 at 18:31:32 (UTC)
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
Member: Biber
Biber Dec 07, 2009 at 18:40:25 (UTC)
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
Member: zensbert
zensbert Dec 07, 2009 at 18:42:12 (UTC)
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^^
Member: zensbert
zensbert Dec 07, 2009 at 18:46:43 (UTC)
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!
Member: paulepank
paulepank Dec 07, 2009 at 19:15:43 (UTC)
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
Member: Biber
Biber Dec 07, 2009 at 19:32:46 (UTC)
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
Member: zensbert
zensbert Dec 07, 2009 at 21:38:46 (UTC)
Goto Top
vielen dank an biber und paulepank^^ hat geklappt