Wie kann ich die Größe eines Ordners mit Powershell ermitteln?


23

Ich möchte sehen können, wie groß ein Ordner ist (alle Inhalte, einschließlich Unterordner und deren Inhalt). Ich kann keinen Powershell-Befehl dafür finden, möchte aber nicht jedes Mal den Windows Explorer öffnen müssen, wenn ich die Größe wissen möchte. Gibt es eine einfache Möglichkeit, dies aus Powershell heraus zu erreichen?

Antworten:


29

Ich bin mir ziemlich sicher, dass ich das von einem Powershell-Tipp des Tages bekommen habe. Ich kann mich nicht sicher erinnern, aber ich benutze es schon lange und es war sehr nützlich.

"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"

Bearbeiten: Um die Verwendung zu vereinfachen (damit Sie sich nicht jedes Mal daran erinnern müssen, dass das Ganze eingegeben wurde), können Sie es wie folgt zu Ihrem Profil als Funktion hinzufügen:

function Get-Size
{
 param([string]$pth)
 "{0:n2}" -f ((gci -path $pth -recurse | measure-object -property length -sum).sum /1mb) + " mb"
}

Und dann benutze es wie jeden Befehl:

Get-size C:\users\administrator

1
Ich bin neugierig, wie füge ich dies einem PowerShell-Profil hinzu? Meinen Sie Dot Sourcing ? (Randnotiz: Code kann durch Hinzufügen von 4 Leerzeichen am Anfang formatiert werden)
nixda

2
Sie können . Geben Sie Ihr Profil als Quelle an, wenn Sie Änderungen vorgenommen haben und Ihre PS-Sitzung nicht neu starten möchten. Es wird jedoch bei jedem Start von Powershell automatisch geladen, sodass Sie dies im Allgemeinen nicht tun würden. Gehen Sie wie folgt vor, um Ihr Profil zum ersten Mal zu erstellen: ni $ profile -type f -fo Anschließend können Sie Ihr Profil öffnen und bearbeiten. Um herauszufinden, wo es sich befindet, geben Sie einfach $ profile in die Shell ein und der Pfad wird angezeigt. Dann ist jede Funktion, die Sie hinzufügen, wie die obige, so wie sie eingebaut ist, verfügbar. Danke auch für den Tipp zur Code-Formatierung
Darian Everett

1
+1 Whoa kannte diesen Trick nicht. Faszinierend :)
Nixda

1
Was bedeutet {0:N2}tun?
Soandos

1
Formatierung. Die Null ist der Platzhalter, die N2 bedeutet, dass es sich um eine Zahl mit zwei Dezimalstellen handelt.
Darian Everett

9

Es ist auf der Microsoft Technet-Website hier

Eingang:

Get-ChildItem C:\Scripts -recurse | Measure-Object -property length -sum

Ausgabe:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length

1
Dies kann jedoch oft ziemlich weit entfernt sein, da Sie rekursiv überprüfen müssen, ob der Ordner Unterordner enthält. Was ist das für ein Maß, Bits?
Austin T Französisch

Korrigieren Sie die Bits - vergessen Sie auch, den Recurse-Schalter einzuschließen, den ich nicht bearbeitet habe - und beachten Sie, dass ich hauptsächlich den Technet-Artikel zur Durchführung dieser über Google gefundenen Suche (Größe des Powershell-Ordners) veröffentlichte, damit OP ein umfassendes Verständnis für das erhalten kann Befehle verwendet nicht nur die Antwort
50-3

Vielen Dank für die Updates, es passt jetzt besser zum Q & A-Format.
Austin T Französisch
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.