Tags: Datei-Management, PowerShell
Wenn der Speicherplatz auf einem Laufwerk knapp wird, dann möchte man wahrscheinlich wissen, ob einige dicke Brocken dafür verantwortlich sind, auf die man eventuell verzichten kann. Für diese Aufgabe gibt es einige kostenlose Tools, aber dank PowerShell kann man sich ihre Installation sparen.
Ausgangspunkt für den benötigten PowerShell-Befehl ist Get-ChildItem, mit dessen Hilfe man Dateien und Verzeichnisse auflisten kann. Für eine Aufgabe wie das Finden der größten Dateien wird man das Resultat des Cmdlets nicht direkt ausgeben, sondern durch weitere Filter schicken, in denen die Daten sortiert und die gewünschten Eigenschaften gezielt extrahiert werden:
gci -r| sort -descending -property length |
select -first 10 name, length
Möchte man ganze Verzeichnisbäume untersuchen, dann setzt man Get-ChildItem (alias gci) rekursiv ein, dafür ist der Schalter -r zuständig. Die Collection von FileInfo-Objekten sortiert man danach absteigend anhand der Eigenschaft length (sort als Alias für Sort-Object) und greift sich schließlich mit Select-Object (Alias select) die 10 ersten Einträge heraus, deren Name und Größe man anzeigt.
Ausgabe der Dateigröße in GB
Das Ergebnis hat noch den kleinen Schönheitsfehler, dass die Größe der Dateien in Bytes angegeben wird. Gerade bei mehreren GB großen Klöpsen ist das unübersichtlich und führt zu sehr großen Zahlen. Hier kann man sich behelfen, indem man die entsprechende Eigenschaft selbst berechnet:
gci -r|sort -descending -property length |
select -first 10 name, @{Name="Gigabytes";Expression={[Math]::round($_.length / 1GB, 2)}}
Anstatt die Eigenschaft length unbearbeitet auszugeben, rechnet man die Dateigröße mit einer Calculated Property in GB um. Die zahlreichen Nachkommastellen lassen sich schließlich noch mit der round-Funktion auf 2 reduzieren.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
Weitere Links