Oftmals standen wir vor dem Problem, dass wir gerne gewusst hätten, welche Ordner bzw. Verzeichnisse unterhalb eines übergeordneten Verzeichnisses leer sind und somit eigentlich nicht benötigt werden. Leider ist das Auffinden leerer Ordner bzw. Verzeichnisse gar nicht so einfach möglich.

Es gibt aber per kurzem PowerShell Kommando die Möglichkeit, sich eine Liste leerer Verzeichnisse auszugeben. Die gesamte PowerShell Zeile lautet in diesem Fall wie folgt.

Get-ChildItem -Path „LAUFWERK:\Verzeichnis“ -Recurse -Directory | ForEach-Object -Process {if ($false -eq $_.GetFileSystemInfos()){$_.FullName}}

Das einzige, was Ihr in dieser PowerShell Zeile anpassen müsst, ist die „Variable“ „LAUFWERK:\Verzeichnis„. Hier müsst Ihr den genauen Pfad einsetzen, den Ihr nach leeren Unterordnern absuchen möchtet.

In unserem Beispiel haben wir unser Benutzerprofil Verzeichnis „C:\Users\Windows-FAQ“ nach leeren Unterordnern abgesucht, wie Ihr hier auf der nachfolgenden Abbildung erkennen könnt.

Leere Unterverzeichnisse auflisten

Wie Ihr seht, werden als Ausgabe unterhalb des Befehls nun 3 Verzeichnisse aufgelistet, die alle komplett leer sind und keine weiteren Dateien oder Unterordner enthalten. In unserem Beispiel sind es die Unterordner „Beiträge„, „Bilder“ und „Downloads„.

Sollte Euch die Ausgabe der Liste in der PowerShell Konsole nicht ausreichen, weil die Liste der leeren Ordner evtl. zu lang ist, so könnt Ihr die gesamte Ausgabe auch in eine Textdatei umleiten, indem Ihr folgendes an den Befehl anhängt.

Get-ChildItem -Path „LAUFWERK:\Verzeichnis“ -Recurse -Directory | ForEach-Object -Process {if ($false -eq $_.GetFileSystemInfos()){$_.FullName}} >C:\ORDNER\DATEINAME.TXT

Wir haben den entsprechenden Parameter ROT gekennzeichnet, welches die Umleitung der Ausgabe in eine Textdatei durchführt.

Leere Ordnerliste

Damit habt Ihr dann auch die Möglichkeit, eine Liste von zahlreichen leeren Verzeichnissen weiter zu verarbeiten.

In einem weiteren Beitrag sind wir noch auf die Möglichkeit eingegangen, wie Ihr gezielt Ordner löschen und dabei die aktuellsten Ordner bestehen lassen könnt.

– Powershell-Befehl „foreach“