Größe des Arbeitsspeicher auslesen
Ich versuche die Größe des Arbeitsspchers auszulesen und diesen dann nicht in Byte anzuzeigen, sondern in MB.
Ab einer gewissen Zahlengröße, gibt es bei der Division einen Fehler.
Hat jemand eine Lösung?
Danke schon mal im vorraus.
Christian
Ab einer gewissen Zahlengröße, gibt es bei der Division einen Fehler.
Hat jemand eine Lösung?
@echo off
for /F "delims=" %%a in ('netsh diag show computer /v ^| find "TotalPhysicalMemory"') do call :splitram %%a
goto :eof
:splitram
set /a mem=%2
set /a mem=%mem%/1024
set /a mem=%mem%/1024
echo Memory: %2 Byte>>Memory_%COMPUTERNAME%.txt
echo Memory: %mem% MB>>Memory_%COMPUTERNAME%.txt
Output1:
Memory: 2146418688 Byte
Memory: 2046 MB
Output2:
Memory: 2683285504 Byte
Memory: -1537 MB
Danke schon mal im vorraus.
Christian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 129653
Url: https://administrator.de/forum/groesse-des-arbeitsspeicher-auslesen-129653.html
Ausgedruckt am: 17.04.2025 um 08:04 Uhr
4 Kommentare
Neuester Kommentar

Hallo swidch!
Der vermeindliche Fehler hängt mit dem Datentyp Long zusammnen.
32-Bit Zahlenwert = 4.294.967.295 = Long von -2.147.483.648 bis +2.147.483.647
Bei der Berechnung ist das (-)Vorzeichen-Bit 31 gesetzt und ergibt zwangsläufig bei einer Berechnung z.B. Division einen -Wert
Gruß Dieter
Der vermeindliche Fehler hängt mit dem Datentyp Long zusammnen.
32-Bit Zahlenwert = 4.294.967.295 = Long von -2.147.483.648 bis +2.147.483.647
Bei der Berechnung ist das (-)Vorzeichen-Bit 31 gesetzt und ergibt zwangsläufig bei einer Berechnung z.B. Division einen -Wert
Gruß Dieter
Moin swidch,
ich kann zwar als Norddeutscher nur vermuten, was ihr wohl unter einer "Huntertertrennung" versucht zu verbalisieren,
aber falls es nur darum geht, einen Punkt (".") durch gar nichts ("") zu ersetzen, folge dieser Skizze:
(Demo am CMD-Prompt; ">" nicht mit eingeben)
Allgemeinere Hinweise zum Manipulieren von CMD-Variableninhalten unter SET /?
Grüße
Biber
ich kann zwar als Norddeutscher nur vermuten, was ihr wohl unter einer "Huntertertrennung" versucht zu verbalisieren,
aber falls es nur darum geht, einen Punkt (".") durch gar nichts ("") zu ersetzen, folge dieser Skizze:
(Demo am CMD-Prompt; ">" nicht mit eingeben)
>set "PhysSpeicher=2.028 MB"
>echo [%PhysSpeicher%] .... [%PhysSpeicher:.=%]
[2.028 MB] .... [2028 MB]
Allgemeinere Hinweise zum Manipulieren von CMD-Variableninhalten unter SET /?
Grüße
Biber