Ordnergrößen anzeigen lassen (Windows /cmd /dir?)?

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

Woher ich das weiß:eigene Erfahrung – Seit über 20 Jahren Hobby.

TechPech1984  26.11.2021, 11:11

da fehlt /ad

sonst bekommste alles mögliche angezeigt

0
Eromzak  26.11.2021, 11:15
@TechPech1984

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?

0
TechPech1984  26.11.2021, 11:20
@Eromzak

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 .

0
Eromzak  26.11.2021, 11:22
@TechPech1984

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.

0
Erzesel  26.11.2021, 15:43
@Eromzak

dir /p macht eine Pause, wenn (Consolenhöhe) Zeilen geschrieben sind.

0
Erzesel  26.11.2021, 15:45
@Eromzak

Irgendwie kommt mir eure Diskussion vor, als würden sich zwei Blinde über die Farbe von Nebel unterhalten 🤣

0
Eromzak  27.11.2021, 07:09
@Erzesel

Wolltest du das eigentlich mit dem zweitaccount verschicken? ;p

0
Erzesel  27.11.2021, 08:37
@Eromzak

...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.

0
Eromzak  27.11.2021, 08:57
@Erzesel

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

1

Einfach Rechtsklick auf Ordner und dann auf Informationen gehen, da steht dann doch die Größe oder?

Woher ich das weiß:eigene Erfahrung

Eromzak  26.11.2021, 11:01

Genau das will er ja nicht siehe Frage.

0
Von Experte Eromzak bestätigt

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


Erzesel  26.11.2021, 15:31
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.

0
Erzesel  26.11.2021, 15:38

ps: dir /s /ad liefert eben nicht die summe der Dateigrößen in einem Ordner zurück, da Dateien nicht gefragt sind...

0

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

Woher ich das weiß:Recherche