Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

WMIC Speicher abfragen

Mitglied: Anon-Anubis

Anon-Anubis (Level 1) - Jetzt verbinden

30.08.2013 um 17:04 Uhr, 3526 Aufrufe, 6 Kommentare, 1 Danke

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
Mitglied: rubberman
30.08.2013 um 20:19 Uhr
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
wmic MemoryChip get Banklabel /value
Grüße
rubberman
Bitte warten ..
Mitglied: Endoro
30.08.2013 um 20:27 Uhr
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:
01.
@echo off &setlocal enabledelayedexpansion 
02.
for /F "tokens=2 delims==" %%i in ('wmic MemoryChip get Banklabel /value') do ( 
03.
	set /a counter+=1 
04.
	set "var!counter!=%%i" 
05.
06.
for /l %%a in (1,1,%counter%) do ( 
07.
	echo !var%%a! 
08.
09.
echo var1=%var1% 
10.
echo var2=%var2%
lg.
Bitte warten ..
Mitglied: rubberman
30.08.2013 um 20:32 Uhr
Hallo Endoro,

je nachdem, was mit den Werten passieren soll, ist es in den meisten Fällen sinnvoller gleich mit der FOR Variablen zu arbeiten. Aber da benötigt man wieder mal die berühmte Glaskugel ...

Grüße
rubberman
Bitte warten ..
Mitglied: Anon-Anubis
30.08.2013 um 22:52 Uhr
Hallo rubberman,
Danke schon mal das du so schnell geantwotet hast!
Also ich habe vor ein Batch Programm zu schreiben das in der lage sein soll einige Wichtige Hardware informationen mit hilfe von WMIC auszulesen!
Mit CPU, BaseBoard, Bios klappt ja sweit auch schon alles nur halt nicht mit MemoryChip da es dort ja in mehreren Zeilen steht
Das soll dann ungefähr so aussehen:

Durch RAM belegte Speicherbänke: Bank 1 - Bank 2 - Bank 3 - Bank 4

Verfühgbarer RAM Speicher Bank 1: 2048 MB - Datenweite: 64 Bit
Verfühgbarer RAM Speicher Bank 2: 2048 MB - Datenweite: 64 Bit
Verfühgbarer RAM Speicher Bank 3: 2048 MB - Datenweite: 64 Bit
Verfühgbarer RAM Speicher Bank 4: 2048 MB - Datenweite: 64 Bit

Mein Problem ist halt die einzelnen Zeilen aus zu lesen. Das ablegen in den Variablen bekomme ich zwar hin aber nicht das er die Zeilen einzeln ausliest.
Ich möchte halt Zeile 1 auslesen und in eine Variable ablegen z.b. %bank1%, dann die zweite Zeile in %Bank2% usw.
währe echt toll wenn ihr da Helfen könntet!
Bitte warten ..
Mitglied: Anon-Anubis
30.08.2013, aktualisiert um 23:07 Uhr
Hallo Endoro,
Danke für deine hilfe!
Sorry wenn ich denn Beitrag noch einmal bearbeiten musste, ich blödian hatte vergessen &setlocal enabledelayedexpansion in mein Batch Programm mit ein zu binden.

Also klappt jetzt aber ich werde nicht var als Variable verwenden sondern Bank find ich halt besser!

setlocal heist ja das die Varialen nur auf das Batch Programm begrenzt werden aber was ich dich dann leider noch fragen muss ist was enabledelayedexpansion für eine bedeutung hat!

MFG
Anon-Anubis
Bitte warten ..
Mitglied: rubberman
31.08.2013 um 11:56 Uhr
Hallo Anon-Anubis.

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
Bitte warten ..
Ähnliche Inhalte
Windows Server

WMIC-Abfrage vom Server nicht möglich: Ausnahmefehler

gelöst Frage von GwahlersWindows Server36 Kommentare

Guten Tag, ich bin gerade dabei OpenAudIT, ein freies NetzwerkInventarisierungs-Tool im Netzwerk zu implementieren. Leider kann das Tool bei ...

Batch & Shell

Ausgabe von wmic logicaldisk in Variable speichern

gelöst Frage von anmelderBatch & Shell1 Kommentar

Ich versuche in etwa folgendes: wmic logicaldisk where caption="d:" get filesystem zeigt mir das Dateisystem eines Laufwerkes welches in ...

Windows Netzwerk

Mittels Ps oder WMIC einen Client abfragen, ob er zur Domain oder Workgroup gehört

gelöst Frage von M.MarzWindows Netzwerk6 Kommentare

Hallo zusammen, würde gerne eine Möglichkeit finden von meinem Rechner remote abfragen nach der Domainzugehörigkeit zu machen. Würde gerne ...

Batch & Shell

WMIC: Keine Netzlaufwerke bei Adminrechten

gelöst Frage von anmelderBatch & Shell5 Kommentare

Hallo, folgender Code listet mir bei normaler Ausführung die Netzwerklaufwerke mit auf: Wenn ich diese Datei unter Win 10 ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 1 TagAusbildung9 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 3 TagenSpeicherkarten3 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 3 TagenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 3 TagenHardware3 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Vmware
Offene LDAP-Server in AS
gelöst Frage von obi-wan-kenobiVmware18 Kommentare

Hallo alle Miteinander, ich habe ein Problem, unsere VM-Ware Appliance (Version. 6.5.0.10000) ist scheinbar angreifbar. Wir haben eben die ...

Windows Server
Zertifikat RemoteDesktop hinterlegen
gelöst Frage von Green14Windows Server11 Kommentare

Hallo zusammen. ich habe mehrere Server (WinSrv 2016). Die Server sind in keiner Domäne und keine Terminalserver. Ich verbinde ...

Suche Projektpartner
Debian 9.5 32 Bit und PHP 7 Fehlerbeseitigungen
Frage von zeroblue2005Suche Projektpartner11 Kommentare

Hallo Zusammen, ich habe eine VM auf Basis von ESXI am laufen. Dieser wurde unter Debian 7 installiert mt ...

Windows Server
DNS - Bedingte Weiterleitung
Frage von m8ichaelWindows Server10 Kommentare

Guten Tag zusammen, ich stehe gerade bzgl. einer bedingten DNS-Weiterleitung etwas auf dem Schlauch: Ich möchte, dass für bestimmte ...