[Microsoft] 空フォルダを全削除するPowerShellスクリプト - Remove empty folders recursively.
robocopy /purgeは、ファイルは消してくれるけれどディレクトリは消してくれません。
アプリをアンインストールするとAppDataの下に空フォルダが残ります。
それらを一括して消したいとき用のスクリプトです。
深さ優先で消してますので、消し残しありません。
4/3 追記
初出時は、隠しディレクトリ/ファイルを消せていませんでした。
スクリプト本体
Function Remove-EmptyFolder {
[cmdletbinding()]
Param(
[parameter(mandatory=$true)][String]$Path
)
Process {
(Get-ChildItem -Force $Path | ? { $_.PSIsContainer -eq $true }) | % { Remove-EmptyFolder $_.FullName }
$dir = Get-Item -Force $Path
if ($dir.PsIsContainer -and $dir.GetFileSystemInfos().Count -eq 0) {
Remove-Item -Force $dir
}
}
}
notepad $profile
としてファイルを開いてコピペしてあげれば、PowerShell起動時に読み込まれるようになります。
使い方
Remove-EmptyFolder フォルダのパス