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.

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.
Keine Produkte gefunden.










