Model mit hilfe vom CMD in eine Variable speichern
Hallo,
ich will das Model eines Rechners auslesen und anschließend in eine Variable speichern.(%Model%)
Mit [wmic computersystem get model | findstr /v "Model"] kriege ich das Model meines Rechners raus.
Gut aber jetzt fehlt nur noch das abspeicher in eine Variable.
Das versuche ich mit [for /f "tokens=*" %g in ('wmic computersystem get model ^| findstr /v "Model"') do set Model=%g]
Ausgabe: set Model="Modelname"
set Model=
Wie man sehen kann wird erst der Modelname in die Variable Model geschrieben und anschließend wird die Variable mit einem
Leerzeichen überschrieben.
An dieser Stelle benötige ich Hilfe.
Vielleicht wisst ihr weiter, wie man das Model in eine Variable Speicher kann.
Ich bin für jede Hilfe dankbar.
Ps.: Der Code soll in der CMD bleiben, das heißt es soll keine Text Datei oder ein Ordner erstellt werden mit dem Inhalt zu
Übertragung des Inhaltes und ähnliches. Außerdem sollte er kurz gehalten werden.
ich will das Model eines Rechners auslesen und anschließend in eine Variable speichern.(%Model%)
Mit [wmic computersystem get model | findstr /v "Model"] kriege ich das Model meines Rechners raus.
Gut aber jetzt fehlt nur noch das abspeicher in eine Variable.
Das versuche ich mit [for /f "tokens=*" %g in ('wmic computersystem get model ^| findstr /v "Model"') do set Model=%g]
Ausgabe: set Model="Modelname"
set Model=
Wie man sehen kann wird erst der Modelname in die Variable Model geschrieben und anschließend wird die Variable mit einem
Leerzeichen überschrieben.
An dieser Stelle benötige ich Hilfe.
Vielleicht wisst ihr weiter, wie man das Model in eine Variable Speicher kann.
Ich bin für jede Hilfe dankbar.
Ps.: Der Code soll in der CMD bleiben, das heißt es soll keine Text Datei oder ein Ordner erstellt werden mit dem Inhalt zu
Übertragung des Inhaltes und ähnliches. Außerdem sollte er kurz gehalten werden.
Please also mark the comments that contributed to the solution of the article
Content-Key: 363571
Url: https://administrator.de/contentid/363571
Printed on: April 25, 2024 at 20:04 o'clock
6 Comments
Latest comment
WMIC gibt am Ende jeder Zeile ein zusätzliches Carriage Return Zeichen aus. Dieser Bug ist so alt wie WMIC selbst. Eine zusätzliche FOR /F Schleife eliminiert dieses Zeichen.
Bei Nutzung in der Kommandozeile sind es nur einfache Prozentzeichen bei den FOR Variablen ...
Steffen
@echo off &setlocal
for /f "delims=" %%i in ('wmic computersystem get model /value') do for /f "delims=" %%j in ("%%i") do set "%%j"
echo %model%
pause
Steffen
Eine FOR Variable besteht aus einem Prozentzeichen und einem Buchstabe. In einem Batchscript muss das Prozentzeichen verdoppelt werden, da es beim Parsen des Scripts wieder zu einem reduziert wird. Es ist übrigens nicht ratsam in einer verschachtelten FOR Schleife beide Variablen gleich zu benennen. Genau genommen wundert es mich dass es überhaupt funktioniert. Ob du nun aber %g und %h, oder wie ich %i und %j verwendest, ist grundsätzlich egal. Wenn du die Ausgabe im Prompt noch etwas übersichtlicher halten willst, verwende ein @ nach jedem DO, à la
Steffen
for /f "delims=" %i in ('wmic computersystem get model /value') do @for /f "delims=" %j in ("%i") do @set "%j"