WMIC Speicher abfragen
Hallo Leute,
Ich möchte gerne per Batch die RAM Bänke abfragen und benutze hierfür folgenden Befehl:
for /F "tokens=2 delims==" %%i in ('wmic MemoryChip get Banklabel /value') do @set membank=%%i
echo %membank%
Leider gibt er mir nur denn letzten RAM Bank aus (Bank6/7).
Vielleicht kennt ihr ja die beste Methode alle Speicherbänke aus zu lesen, vielleicht sogar einzeln.
Freue mich schon auf recht viele Hilfen
Ich möchte gerne per Batch die RAM Bänke abfragen und benutze hierfür folgenden Befehl:
for /F "tokens=2 delims==" %%i in ('wmic MemoryChip get Banklabel /value') do @set membank=%%i
echo %membank%
Leider gibt er mir nur denn letzten RAM Bank aus (Bank6/7).
Vielleicht kennt ihr ja die beste Methode alle Speicherbänke aus zu lesen, vielleicht sogar einzeln.
Freue mich schon auf recht viele Hilfen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 215696
Url: https://administrator.de/contentid/215696
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Anon-Anubis, willkommen im Forum.
Die FOR /F Schleife arbeitet die WMIC Ausgabe Zeile für Zeile ab. Das bedeutet, der Wert der Variablen membank wird immer wieder überschrieben. Nachdem die Schleife abgearbeitet ist, bleibt der letzte Wert in der Variablen stehen. Diesen gibst du dann aus.
Da du nicht gesagt hast, was du letztlich mit den Werten vorhast, reicht für die einfache Ausgabe die Zeile
Grüße
rubberman
Die FOR /F Schleife arbeitet die WMIC Ausgabe Zeile für Zeile ab. Das bedeutet, der Wert der Variablen membank wird immer wieder überschrieben. Nachdem die Schleife abgearbeitet ist, bleibt der letzte Wert in der Variablen stehen. Diesen gibst du dann aus.
Da du nicht gesagt hast, was du letztlich mit den Werten vorhast, reicht für die einfache Ausgabe die Zeile
wmic MemoryChip get Banklabel /value
Grüße
rubberman
Hallo,
wenn mehrere Zeilen einzulesen sind, benötigst du auch so viele Variable,
Zum Beispiel also "var1", "var2" usw. Diese Variable kannst du dann entweder nacheinander oder einzeln ausgeben, verarbeiten usw.
Beispiel:
lg.
wenn mehrere Zeilen einzulesen sind, benötigst du auch so viele Variable,
Zum Beispiel also "var1", "var2" usw. Diese Variable kannst du dann entweder nacheinander oder einzeln ausgeben, verarbeiten usw.
Beispiel:
@echo off &setlocal enabledelayedexpansion
for /F "tokens=2 delims==" %%i in ('wmic MemoryChip get Banklabel /value') do (
set /a counter+=1
set "var!counter!=%%i"
)
for /l %%a in (1,1,%counter%) do (
echo !var%%a!
)
echo var1=%var1%
echo var2=%var2%
Hallo Anon-Anubis.
Das EnableDelayedExpansion schaltet die sogenannte "verzögerte Variablenerweiterung" ein. Dabei wird, unter Verwendung von Ausrufezeichen statt Prozentzeichen, eine Variable erst zur Laufzeit der Kommandozeile / des Blocks zum Wert aufgelöst. Änderungen zur Laufzeit werden somit zugänglich gemacht.
Siehe
Tutorial zur FOR-Schleife
Die Geheimnisse des Batch Zeilen Interpreters
Unabhängig davon: Warum arbeitest du nicht innerhalb der FOR /F Schleife direkt mit den FOR Variablen und weist statt dessen einen Berg an neuen Umgebungsvariablen zu?
Grüße
rubberman
setlocal heist ja das die Varialen nur auf das Batch Programm begrenzt werden
Nein. Mit SETLOCAL wird ein Subenvironment eröffnet, das durch ein ENDLOCAL wieder verlassen wird. (Beim Beenden einer Batchdatei wird ENDLOCAL implizit für jedes gesetzte SETLOCAL ausgeführt.)aber was ich dich dann leider noch fragen muss ist was enabledelayedexpansion für eine bedeutung hat
Normale Umgebungsvariablen werden nur einmal innerhalb einer Kommandozeile oder eines in Klammern eingeschlossenen Kommandozeilenblocks zum Wert aufgelöst. Es erfolgt also eine Art Textersetzung noch bevor der Code ausgeführt wird.Das EnableDelayedExpansion schaltet die sogenannte "verzögerte Variablenerweiterung" ein. Dabei wird, unter Verwendung von Ausrufezeichen statt Prozentzeichen, eine Variable erst zur Laufzeit der Kommandozeile / des Blocks zum Wert aufgelöst. Änderungen zur Laufzeit werden somit zugänglich gemacht.
Siehe
Tutorial zur FOR-Schleife
Die Geheimnisse des Batch Zeilen Interpreters
Unabhängig davon: Warum arbeitest du nicht innerhalb der FOR /F Schleife direkt mit den FOR Variablen und weist statt dessen einen Berg an neuen Umgebungsvariablen zu?
Grüße
rubberman