Ordnergrößen anzeigen lassen (Windows /cmd /dir?)?
Hallo zusammen,
ich möchte mir gerne die Ordner mit Ordnergrößen und die Unterordner mit Ordnergrößen anzeigen lassen. (Ich möchte keine Zusatz-App/ kein Zusatz-Programm installieren und ich möchte auch nicht umständlich über Eigenschaften mir die Ordnergrößen anzeigen lassen.)
Die Idee war über cmd zu gehen. Ich bin Anfänger und bin über Foren zu /dir gelangt. Das klappt aber nicht wie gewünscht und ich komme hier nicht weiter. Kann mir jemand helfen? Im Idealfall würde ich zu einem Punkt der Ordnerstruktur navigieren und ab dort einen Befehl geben, der mir die Ordner mit Unterordner anzeigt.
Bsp: C:\Apfel\Birne\Kirsche\Orange\Mandarine
ab Kirsche hätte ich gerne die Ordner mit Größe und auch von Orange die Ordner mit Größe
(Mit PowerShell habe ich keine Erfahrung, würde es aber hinbekommen einen Code einzufügen :); sonstige Lösungsansätze willkommen.)
Danke schon einmal
6 Antworten
dir /s |findstr "Verzeichnis Datei(en),"
rem bzw mit Angabe des zu durchsuchenden Pfades:
dir /s "c:\windows\"|findstr "Verzeichnis Datei(en),"
listet die Größen der einzelnen Verzeichnisse und am Ende den Gesamtwert.
ansonsten kannst Du die Zwischenwerte komplett verwerfen, indem Du das ganze in einer Batch durch einen for/f-Loop jagst und nur die letzte Zeile "behältst".
@echo off
rem hie Pfad zum untersuchenden Ordner oder nichts/ bzw. %cd% für den aktuellen Ordner
set "searchfolder=%cd%"
for /f "tokens=*" %%a in ('dir /s "%searchfolder%\" ^|find "Datei(en),"') do (set "foldersum=%%a")
echo "%searchfolder%" hat %foldersum%
pause
will man das öfter zelebrieren, wäre eine Subroutine empfehlenswert:
@echo off
call :getFoldersize "%cd%"
call :getFoldersize "c:\Program Files"
pause
exit /b
:getFoldersize %1=Folderpath
for /f "tokens=*" %%a in ('dir /s "%~1\" ^|find "Datei(en),"') do (set "foldersum=%%a")
echo "%~1" hat %foldersum%
exit /b
...natürlich kannst Du das auch mit Deinen Obstordnern...
+edit = TechPech1984 hat ne besser Lösung für cmd.
Hier die Varriante mit powershell:
$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize
Grüße
Macht das nicht /p - das nicht alles aufgelistet wird? Ist ne Weile her.
So oder so ist die letzte information die gelistet wird die gesuchte nicht oder?
ups, bei /p gibts nur mit /ad die ordner ohne größe sehe ich garade
bei /s /ad mit größen angabe .
/p listet zwar auf , aber halt alles .
Habs eben mal ausprobiert am rechner /s /ad ist besser.
powershell hat aber ne schönere lösung (siehe meine editierte antwort) das dürfte ähnlich deinem angesprochenen Linux outcome sein.
...definiere "Grau" , ohne Verwendung visueller Begriffe🤔
Wie kommst Du auf die Idee, ich hätte einen Zweitaccount nötig?
Brauch ich nicht. Wenn ich jemandem etwas zu sagen habe, tue ich dies (im Rahmen des zulässigen)
Das halte ich nur für fair. Du scheinst noch nicht lange in der "Programmiererecke" des GF beheimatet zu sein..., dann wüsstest Du, das ich mich nicht scheue (gelwgendlich spitzzüngige) Kritik an offensichtlich unausgegorenen Konzepten zu üben.
Und natürlich darf sich auch jeder zu meinen Irrtümern äußern oder einen effektivereren Lösungsansatz offerieren. Ich weiß zwar vieles, aber nicht alles.
Kleiner Tipp bzgl. Powershell:
(gci -force -r -ea SilentlyContinue| measure Length -sum).sum
Damit umschiffst du den Umstand das Du für jede Zielvariable das Foreach-Object erneut definieren musst.
Allgemein kannst du innerhalb von % auch mit begin, process,end -Böcken arbeiten.
1..5|%{$_tmp=0}{$_tmp+=$_}{$_tmp}
Hauptsache man greift aus der Pipe nicht direkt auf die Zielvariablen zu. Eine Pipe hat zwei Enden: rein und raus .
Was Du oben gemacht hast, geht zwar, hat jedoch etwas von einem Loch seitlich in die Pipe boren.
Du kannst einem Blinden Grau nicht erklären, aber im Kern ist es die abwesenheit von Farbe.
Wie ich auf die Idee kam? Ganz einfache Logik. Du hast 2 verschiedene Beiträgte hintereinander gepostet (was erstmal nicht auffällig ist) aber im 2ten davon von dir selbst in der 3ten Person gesprochen. "EURE Diskussion" andstelle von "Unsere Diskussion" - das ist schon eher Auffällig in Verbindung mit ersterem - hättest du das in einem Beitrag geschrieben wäre ich nie drauf gekommen und hätte "eure" als fehler angenommen) - die Brotkrümmel haste also selber gelegt und ist keine absolut grundlose annahme meinerseits gewesen.
Nein ich hab kein Plan von Programmieren und bin nur hier zur selbst edukation, er hat ein Problem, und ich schauh dann was die befehle machen und kuck ob ichs selber gebacken bekomme. (quasi als übung) Habs dann getestet und es funktioniert. Sicher gibts dann immer schönere Lösungen und für die info dank ich dir herzlich. Ich seh übrigens kein Problem mit Löchern in die Pipe bohren wenn das dann da ankommt wos ankommen soll. ;p
Einfach Rechtsklick auf Ordner und dann auf Informationen gehen, da steht dann doch die Größe oder?
nur Ordner
dir /s /ad
allerdings wenn man linux gewöhnt ist, ist es das schlechteste was man nehmen kann .
windows dir befehl war schon immer das was untauglich ist . war wohl damals für disketten windows 1.0 gedacht lol
ps: dir /s /ad liefert eben nicht die summe der Dateigrößen in einem Ordner zurück, da Dateien nicht gefragt sind...
windows dir befehl war schon immer das was untauglich ist . war wohl damals für disketten windows 1.0 gedacht lol
der ist viel älter als Windows.
dir gab es bereits unter CP/M 1974
Ich finde es ja nicht schlimm, wenn sich nicht jeder mit den "Klassikern auskennt, etwas als untauglich abzuqualifizieren, nur weil man etwas nicht versteht ist 💩
Batch ist nunmal ein Relikt , und niemand kann etwas dafür, wenn von Befehlen eine Funktionalität verlangt wird, für welche diese nicht gedacht sind.
Der Dir-befehl entfaltet (wie auch andere Batchbefehle) seine Funktionalität in Verbindung mit Filtern wie For/f tokens delims und Pipes zu find,Findstr,more
...in dieser Beziehung gibt es auch keine riesigen Unterschied zu Bash oder Powershell.
Ich bin schon sehr lange in Sachen Computer unterwegs und was einigen Nutzern so vorschwebt ist oft nicht nachvollziehbar. Ich brauchte in den vielen Jahren eher selten die Gesamtgröße eines Ordnerpfades per cmd...
und wenn dann tut es dir /s "Pfad"|findstr "Datei(en)," Die letzte Zeile in der Console ist die Summe. In einer Batch lässt man die Zwischenergebnisse einfach "verschlucken"
Wenn Du einer kleinen Batch den Aufwand gegenüberstellst, welcher in C++, C#,Java nötig ist , dürftest di verstehen, das dir ok für das ist, wofür es schon immer gedacht war.
Vergewissern Sie sich unter Erweiterte Einstellungen, dass die Option „Dateigrößeinformationen in Ordnertipps anzeigen“ aktiviert ist. Klicken Sie auf OK, um die Einstellungen zu speichern. Fahren Sie dann mit der Maus über den Zielordner und Sie sehen die Ordnergröße dieses Ordners.
Quelle de.minitool.com
da fehlt /ad
sonst bekommste alles mögliche angezeigt