Per PowerShell leere Ordner finden und löschen

Per PowerShell leere Ordner finden! Wer kennt das nicht? Immer mehr Daten sammeln sich auf den Geräten. Sei jetzt nur durch den Download oder sonstiger Speicherung von Informationen.

Neben vielen verschiedenen Programmen kannst du auch mit der PowerShell leer Ordner finden und löschen.

Der große Vorteil von der PowerShell liegt u. a. natürlich wieder daran, dass du dir dein eigenes angepasstes Skript erstellen kannst.

Des Weiteren kannst du dieses Skript dann z. B. in die Aufgabenplanung einbinden und somit automatisiert nach leeren Ordnern suchen und diese anschließend löschen.

Das folgende kleine PowerShell Script, liefert dir dabei sämtliche nötigen Befehle. Das zu durchsuchende Verzeichnis wird in die Variable $folder gespeichert.

Der Pfad muss natürlich entsprechend angepasst werden. Hier wird der Pfad zu den Dokumenten des Users Markus verwendet.

Zum Auflisten der Verzeichnisse gibt es in der PowerShell das Cmdlet Get-Childitem. Wichtig ist, dass der Parameter „recursive“ verwendet wird.

Der Parameter -Recursive bewirkt, dass die Suche rekursiv durch Unterverzeichnisse erfolgt.

Wenn du also jetzt Get-ChildItem -Recursive verwendest, durchsucht PowerShell nicht nur das angegebene Verzeichnis, sondern auch alle Unterverzeichnisse, einschließlich deren Unterverzeichnisse, und so weiter.

Dies ermöglicht es, alle Dateien und Verzeichnisse tief in der Verzeichnisstruktur zu durchsuchen. Genau das soll hier auch durchgeführt werden.

Die Prüfung, ob ein Ordner leer ist, funktioniert relativ einfach. Man zählt in einem Ordner die vorhandenen Dateien. Das erreicht man mit der Funktion GetFileSystemInfo(). Sollte ich hier der Wert Null herauskommen, dann ist der Ordner leer.

Für den Vergleich lassen sich hier sehr einfache Vergleichsoperatoren verwenden. In diesem Fall wurde der Operator, -eq, was so viel heißt, wie „ist gleich“ verwendet.

Script um per PowerShell leere Ordner finden und löschen zu können

# Get a list of all folders
$folder = "C:\Users\markus\Documents\"
$folders = Get-ChildItem -Path $folder -Directory -Recurse
 
# Filter out the empty folders

$emptyFolders = $folders | Where-Object {$_.GetFileSystemInfos().Count -eq 0}

# Show the empty folders

Write-Host $emptyFolders

# Delete the empty folders

$emptyFolders | Remove-Item -Force -Verbose

Wenn du jetzt per PowerShell leere Ordner löschen möchtest, so wäre es evtl. auch ratsam, vorab die gefundenen leeren Ordner anzeigen zu lassen.

Das Löschen der leeren Ordner erfolgt anschließend über das Cmdlet Remove-Item. Diesem Cmdlet wird der Inhalt der Variable $emptyFolders übergeben.

Das Übergeben erfolgt dabei über die Pipe. Diese ist ein hervorragender Operator, wenn es um das Weiterleiten von Ausgaben geht.

PowerShell leere Ordner finden und löschen
PowerShell leere Ordner finden und löschen

Das obige Script kannst du reguläre über einen Editor wie die Windows PowerShell ISE erstellen, oder besser, du verwendest die moderne Entwicklungsumgebung Visual Studio Code.

Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 30.06.2024

726517563f9a4b53a5ad5893304759d9
Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte.


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

×