Leere Ordner mit Powershell löschen

Powershell bietet hierfür zwar kein Standard Cmdlet an, aber es ist sehr leicht, sich für diesen Zweck eine eigene Funktion zu schreiben. Das folgende kurze Skript erstellt eine neue Funktion, mit der Du leere Ordner löschen und auch untergeordnete Verzeichnisse entfernen kannst.

function Remove-EmptyFolders([string]$folders){
   Get-Childitem $folders -Recurse | Where-Object {$_.PSIsContainer -and !(Get-Childitem $_.Fullname -Recurse | 
   Where-Object {!$_.PSIsContainer})} | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
}

Die Funktion ist anschließend über den Befehl Remove-EmptyFolders verfügbar. Als Parameter muss lediglich der Ordner mitgegeben werden, in welchem letztlich nach leeren Verzeichnissen gesucht werden soll. Bedeutet, dass alle leeren Unterverzeichnisse dieses Ordners entfernt werden.

Mit dem folgenden Beispiel werden somit alle Unterordner des Ordners C:\Temp\Testordner gelöscht:

Remove-EmptyFolders C:\Temp\Testordner

Als Parameter kann natürlich auch eine Variable angegeben werden, in welcher der Ordner gespeichert wurde. Das ist besonders nützlich bei Skripten, die auf bestimmte Ordnerstrukturen angewendet werden.

  • 06/04/2022