The *remove-empty-dirs.ps1* Script =========================== This PowerShell script removes all empty subfolders within a directory tree. Parameters ---------- ```powershell /home/markus/Repos/PowerShell/scripts/remove-empty-dirs.ps1 [[-DirTree] ] [] -DirTree Specifies the path to the directory tree Required? false Position? 1 Default value Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` Example ------- ```powershell PS> ./remove-empty-dirs C:\Temp ``` Notes ----- Author: Markus Fleschutz | License: CC0 Related Links ------------- https://github.com/fleschutz/PowerShell Script Content -------------- ```powershell <# .SYNOPSIS Removes all empty subfolders within a directory tree .DESCRIPTION This PowerShell script removes all empty subfolders within a directory tree. .PARAMETER DirTree Specifies the path to the directory tree .EXAMPLE PS> ./remove-empty-dirs C:\Temp .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param([string]$DirTree = "") try { if ($DirTree -eq "" ) { $DirTree = read-host "Enter the path to the directory tree" } $Folders = @() foreach ($Folder in (Get-ChildItem -path "$DirTree" -Recurse | Where { $_.PSisContainer })) { $Folders += New-Object PSObject -Property @{ Object = $Folder Depth = ($Folder.FullName.Split("\")).Count } } $Folders = $Folders | Sort Depth -Descending $Deleted = @() foreach ($Folder in $Folders) { if ($Folder.Object.GetFileSystemInfos().Count -eq 0) { $Deleted += New-Object PSObject -Property @{ Folder = $Folder.Object.FullName Deleted = (Get-Date -Format "hh:mm:ss tt") Created = $Folder.Object.CreationTime 'Last Modified' = $Folder.Object.LastWriteTime Owner = (Get-Acl $Folder.Object.FullName).Owner } Remove-Item -Path $Folder.Object.FullName -Force } } "✅ Done." exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 } ``` *(generated by convert-ps2md.ps1 as of 11/20/2024 11:52:00)*