Windows-Batchdatei um den freien Speicherplatz abzufragen und in eine Datei zu schreiben?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
@echo off
cls
cd /d "%~dp0"
pushd "%~d0\"
for /F "tokens=2 delims=," %%I in ('dir') do (
   set strng=%%I
)
popd
echo %strng%
echo %strng%>freier_Speicher.txt


Pornobalken 
Fragesteller
 08.07.2023, 18:49

Frage zu 100% beantwortet, vielen Dank!

Kleine Zusatzfrage: Wie runde ich auf GB (direkt in der Batch), mit Bytes rechnen ist nicht wirklich mein Ding?

0
Tilo2300  08.07.2023, 19:14
@Pornobalken

Rechnen direkt in Batch geht nur SEHR eingeschränkt.
Um eine Fehlermeldung direkt aus der Konsole zu zitieren:
"Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits."
Das heißt, die größte Zahl, mit der du fehlerfrei rechnen kannst ist 4.294.967.295 (= 2^32 = 4.294.967.296 - 1).
Das ist der Byte-Wert von 4 GB.
Um von Byte auf Kilobyte zu kommen, dividierst du durch 1.024.
Von Kilobyte auf Megabyte ebenfalls durch 1.024.
Von Megabyte auf Gigabyte: wieder durch 1.024.
Wenn du aber schon mehr als 4 GB (4.294.967.295 Byte) freien Speicher ermittelt hast, kannst du mit dieser Zahl in einer einfach Batch schon nicht mehr rechnen. So sehr ich die Kommandozeile und Batch-Skripte mag, sie ist SEHR eingeschränkt.
Typischerweise behilft man sich an dieser Stelle mit einer Hilfskonstruktion...
Man läßt durch das Batch-Skript "on the fly" eine VB-Script-Datei mit den ermittelten Werten in einer Formel erstellen und diese die Berechnung ausführen. Dann läßt man sie das Ergebnis übernehmen und die temporäre VB-Skriptdatei wieder löschen.
Kann man machen... ich mache es auch hin und wieder... aber "sauber" ist das irgendwie nicht und schön auch nicht und zeitgemäß schon gar nicht (mehr).

1