CMD Ordnergröße ermitteln
Hallo zusammen,
ich habe bei der Suche hier eine Funktion von Biber gefunden, die Rekrusiv die Ordner durchgeht und die Dateigröße des Ordner ausließt:
Ein Problem sehe ich darin, ich benötige die Dateigröße auf dem Datenträger und bin zur Zeit am überlegen wie ich die per dir Befehl auslesen kann.
Es fehlt ja eigentlich nur eine Funktion:
DirSize = Aktuelle Dateigröße der Operation
Anzahl = Dirsize/4096
Neue Dateigröße = RUNDEAUF(Anzahl)*1024
Ich hoffe ihr könnt mir helfen.
Grüße
Nina Winter
ich habe bei der Suche hier eine Funktion von Biber gefunden, die Rekrusiv die Ordner durchgeht und die Dateigröße des Ordner ausließt:
::------snipp Dirsize.bat (Parameter1 Verzeichnisname [opt Par2: /R wie Rekursiv] /opt. par3 =Ebenen
@echo off & setlocal & Set DIRCMD=
IF /i [%2]==[/R] for /R "%~1" %%a in (.) do @%0 "%%a" %3
if not [%2]== Set /a "Level=%2+2"
if defined level for /f "delims=\ tokens=1,%level%" %%i in ("%~1") do if not [%%j]== goto :eof
If exist "%1" (
for /f "tokens=3" %%c in ('dir "%~1" /s ^2^>nul^| findstr /c:"Datei(en)" ') do set DirSize=%%c
)
set "space20=____________________"
if defined DirSize set "Dirsize=%space20%%Dirsize%"
if defined DirSize echo %DirSize:~-15% %~f1
::------snapp Dirsize.bat
Ein Problem sehe ich darin, ich benötige die Dateigröße auf dem Datenträger und bin zur Zeit am überlegen wie ich die per dir Befehl auslesen kann.
Es fehlt ja eigentlich nur eine Funktion:
DirSize = Aktuelle Dateigröße der Operation
Anzahl = Dirsize/4096
Neue Dateigröße = RUNDEAUF(Anzahl)*1024
Ich hoffe ihr könnt mir helfen.
Grüße
Nina Winter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 11.12.2009 um 16:59:41 Uhr
Verschoben von "Windows Server" nach "Batch & Shell".
Content-ID: 131399
Url: https://administrator.de/forum/cmd-ordnergroesse-ermitteln-131399.html
Ausgedruckt am: 23.04.2025 um 07:04 Uhr
2 Kommentare
Neuester Kommentar
Moin nwinter91,
willkommen im Forum.
Hmmja, ein bisschen dir die Handhabung der Werkzeuge zeigen kann ich jetzt schon,
aber was den eigentlichen Algorithmus, den Rechenweg angeht, da sollten wir nochmal (gemeinsam mit dem Rest des Forums) laut meditieren.
Erstmal das Handwerkliche.
Wenn wir kurz an den CMD-Prompt wechseln und ein bisschen an der zentralen Zeile 07 oben im Skript rumschrauben, dann bekommen wir ja recht schnell zwei zahlenwerte heraus statt nur einem.
Zur Demo: Ich befinde mich am CMD-Prompt in meinem Verzeichnis D:\temp und habe vorher mit
Außerdem hab ich beim DIR-Aufruf den Parameter [DIR ... /-c ..] mit angegeben, damit die Tausenderpunkte in den Byteangaben unterdrückt werden.
Bitte nur den Teil der Zeile nach ">" eingeben, der Rest ist mien Prompt.
In der ersten Demo-Zeile setze ich zwei Variablen - da ich die später wiederfinden will,beginnen beide mit dem Präfix "DirSize...".
Deshalb kann ich die im zweiten Schritt auch stressarm abfragen mit "Set dirs"
Soweit kann ich dich also bringen - jetzt haben wir die Anzahl Dateien (allerdings ohne Anzahl leerer Ordner und 0-Byte-Dateien) und die Anzahl Bytes von Dateien mit Inhalt.
Jetzt du wieder: wie von hier an weiter?
Gefunden wurden (s.o) 3554 Dateien... Informationstransportierende Bytes in diesen Dateien sind 1.1 Mrd. Zeichen.
Wie möchstest du jetzt den Platzbedarf abschätzen?
Grüße
Biber
willkommen im Forum.
Hmmja, ein bisschen dir die Handhabung der Werkzeuge zeigen kann ich jetzt schon,
aber was den eigentlichen Algorithmus, den Rechenweg angeht, da sollten wir nochmal (gemeinsam mit dem Rest des Forums) laut meditieren.
Erstmal das Handwerkliche.
Wenn wir kurz an den CMD-Prompt wechseln und ein bisschen an der zentralen Zeile 07 oben im Skript rumschrauben, dann bekommen wir ja recht schnell zwei zahlenwerte heraus statt nur einem.
Zur Demo: Ich befinde mich am CMD-Prompt in meinem Verzeichnis D:\temp und habe vorher mit
mode con Cols=155 lines=44
...ein bisschen Platz für Ein- und Ausgaben freigeschaufelt.Außerdem hab ich beim DIR-Aufruf den Parameter [DIR ... /-c ..] mit angegeben, damit die Tausenderpunkte in den Byteangaben unterdrückt werden.
Bitte nur den Teil der Zeile nach ">" eingeben, der Rest ist mien Prompt.
(=17:09:29 D:\temp=)
>for /f "tokens=1-3" %a in ('dir "D:\temp" /-c /s ^2^>nul^| findstr /c:"Datei(en)" ') do @Set /a "DirSizeFiles+=%a,DirSizeBytes+=%c">nul
(=17:09:35 D:\temp=)
>Set dirS
DirSizeBytes=1105190852
DirSizeFiles=3554
Deshalb kann ich die im zweiten Schritt auch stressarm abfragen mit "Set dirs"
Soweit kann ich dich also bringen - jetzt haben wir die Anzahl Dateien (allerdings ohne Anzahl leerer Ordner und 0-Byte-Dateien) und die Anzahl Bytes von Dateien mit Inhalt.
Jetzt du wieder: wie von hier an weiter?
Gefunden wurden (s.o) 3554 Dateien... Informationstransportierende Bytes in diesen Dateien sind 1.1 Mrd. Zeichen.
Wie möchstest du jetzt den Platzbedarf abschätzen?
Grüße
Biber