ArbeitspeicherGröße per batch auslesen

atomrofler

Lt. Commander
Registriert
Mai 2005
Beiträge
1.350
Hallo zusammen,

vielleicht hat hier jemand eine Idee.
Ich möchte gerne mit einer normalen *.bat Datei den Arbeitsspeichergröße auszulesen.

Die Idee ist, mit dem "mem" die nötigen Daten zu bekommen. Die Ausgabe es Befehls mem sieht so aus:

C:\Dokumente und Einstellungen\Atomrofler>mem


655360 Bytes gesamter konventioneller Speicher
655360 Bytes für MS-DOS verfügbar
591952 maximale Größe für ausführbares Programm

1048576 Bytes gesamter fortlaufender Erweiterungsspeicher
0 Bytes fortlaufender Erweiterungsspeicher verfügbar
941056 Bytes XMS-Speicher verfügbar
MS-DOS ist resident im oberen Speicherbereich (HMA).


Davon brauchen tu ich eigentlich nur den Fett Markierten Teil. Wie kann ich mir die Zahl in eine Variable schreiben? Wie ich eine Zahl reinschreiben kann weiss ich, aber wie bekomm ich sie aus der Anzeige gefiltert? :freaky:

Hilfsprogramme dürfen es nicht sein. Es muss ein Standard XP System sein.
Hoffe da kann mir jemand helfen.

Viele Grüße
 
Was hast du genau vor?

Mit folgendem Befehl kannst diese Daten schonmal in eine Datei schreiben:

Code:
mem > d:\mem-details.txt
 
Hallo,
ich hab mein Plan nochmal etwas geändert.
Bisher geh ich so vor:

Code:
call systeminfo | findstr /C:"Gesamter physikalischer Speicher" > mem.txt
Damit wird einfach "systeminfo" ausgeführt. Mit findstr filtere ich mir die Zeile des Physikalische Speichers aus. Die Datei mem.txt sieht so aus:
Code:
Gesamter physikalischer Speicher:       1.022 MB

Jetzt hole ich mir mir mit einer for schleife die nur Zahl raus und schreibe diese in Variable %memg%.
Code:
for /f "tokens=4" %%i in (mem.txt) do set memg=%%i
Diese Zahl will ich jetzt mit einer if Abfrage prüfen, ob die Variable größer oder kleiner als 512 ist. Problem ist, dass ich nicht mit einer Zahl rechnen oder größer/kleiner vergleich kann, wenn ein "." in der Zahl ist.
Hier als 1.022. Da müsste raus werden: "1022"

Vielleicht denke ich auch zu kompliziert. Was kann ich da machen?

Grüße
 
Alphamoose schrieb:
Eventuell nach '.' suchen und durch einen leeren String ersetzen:
http://ss64.com/ntsyntax/varsearch.html
Ist allgemein ne recht interessante Seite zu Batch-Scripting...

Danke für die schnelle Antwort und der Seite. Ist wirklich gut!
Hier die Lösung:

Auszug der Seite:

The variable _test containing 123456789abcdef0 is used for all the following examples:

::Edit and replace the character string 'ab' with 'xy'
SET _test=123456789abcdef0
SET _result=%_test:ab=xy%
ECHO %_result% =123456789xycdef0

::Delete the character string 'ab'
SET _test=123456789abcdef0
SET _result=%_test:ab=%
ECHO %_result% =123456789cdef0

::Delete the character string 'ab' and everything before it
SET _test=123456789abcdef0
SET _result=%_test:*ab=%
ECHO %_result% =cdef0

::Replace the character string 'ab' and everything before it with 'XY'
SET _test=123456789abcdef0
SET _result=%_test:*ab=XY%
ECHO %_result% =XYcdef0


Grüße und nochmals danke!
 

Ähnliche Themen

Zurück
Oben