Windows-Batchdatei um den freien Speicherplatz abzufragen und in eine Datei zu schreiben?
Hallo in die Runde,
ich benötige eine Batchdatei die den freien Festplattenspeicherplatz ausliest und in eine TXT/CSV Datei schreibt. Die Batchdatei soll das Laufwerk verwenden von dem sie aus gestartet wurde. Ich möchte nicht mit Powershell arbeiten!
1 Antwort
@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
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).
Hier wurde mal ein Beispiel diskutiert und gezeigt:
www.computerhope.com/forum/index.php?topic=141566.0
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?