Wie kann ich Verzeichnisse und ihre Größen in der Eingabeaufforderung auflisten?

15

Ich möchte die Größe von Unterordnern in einem Ordner sehen, ähnlich wie bei einem Linux- du -shBefehl. Wie kann ich Verzeichnisse und ihre Größen in der Eingabeaufforderung auflisten?

giorgio79
quelle
PS Ich fand diese kostenlose kleine Software auch nützlich windirstat.info
giorgio79
Vielen Dank für den Hinweis du -sh- ich benutze cmder unter Windows und es hat gut funktioniert.
Jbaums

Antworten:

19

Probieren Sie das Dienstprogramm " Disk Usage" von Sysinternals aus. Insbesondere du -l 1sollte die Größe jedes Unterverzeichnisses des aktuellen Verzeichnisses angezeigt werden. Weitere Informationen erhalten Sie, wenn Sie den duBefehl ohne Parameter ausführen .


Wenn PowerShell in Ordnung ist, versuchen Sie Folgendes:

Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
  $_.Name + ": " + (
    Get-ChildItem $_ -Recurse |
    Measure-Object Length -Sum -ErrorAction SilentlyContinue
  ).Sum
}

Die Größen sind in Bytes angegeben. Versuchen Sie Folgendes, um sie in einer größeren Einheit wie MB zu formatieren (auf eine Zeile zusammengefasst):

Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }

Weitere Informationen finden Sie in diesem Artikel bei Technet .

Wenn Sie eine flexiblere Formatierung der Größen wünschen (Auswahl von kB / MB / GB / etc basierend auf der tatsächlichen Größe), lesen Sie diese Frage und deren Antworten .


Ich denke nicht, dass es möglich ist, mit der regulären Befehlszeile und nur wenigen einfachen Befehlen das zu tun, was Sie wollen. Sehen Sie sich dieses Skript als Beispiel an (ich werde es hier nicht kopieren, weil ich nicht der Meinung bin, dass es sich lohnt, diesen Ansatz zu verfolgen, es sei denn, PowerShell ist nicht verfügbar und Dienstprogramme von Drittanbietern sind nicht akzeptabel).

Indrek
quelle
Sieht gut aus. Wartet ein bisschen, um zu sehen, ob es eine native Möglichkeit gibt, dies in der Eingabeaufforderung zu tun :)
giorgio79
@ giorgio79 Siehe aktualisierte Antwort. Es kann nativ in der Eingabeaufforderung ausgeführt werden, ich empfehle jedoch entweder die Datenträgernutzung oder die Verwendung von PowerShell.
Indrek
0

Ich habe keine Erfahrung mit duLinux. In Windows dir /sliste ich jedoch alle Ordner und Unterordner zusammen mit den Dateigrößen auf.

Ankit
quelle
1
Der /SSchalter zeigt keine Verzeichnisgrößen an, sondern lässt den Befehl rekursiv alle Unterverzeichnisse durchlaufen.
Indrek
3
Schauen Sie genau hin, es zeigt auch die Größe jedes Ordners. Obwohl es nicht viel lesbar ist.
Ankit
Ah ja, ich verstehe, was Sie meinen - unter der Dateiliste jedes Unterverzeichnisses wird die Gesamtgröße aller Dateien in diesem Verzeichnis angezeigt. Wie Sie bereits sagten, ist es jedoch nicht einfach zu lesen, und die Größen werden nicht rekursiv angezeigt.
Indrek