【PowerShell】空フォルダを一括で削除する

PowerShellで
 ・空フォルダを一括で削除
できます!
サブフォルダ配下の空フォルダも一括で削除できます。

PR

コード

ここでは例として
 ・フォルダ「C:\Users\user\Desktop\test」配下の
 ・空フォルダを一括で削除
します。
サブフォルダ配下の空フォルダも削除します。

実行前①
実行前①
実行前②
実行前②
実行前③
実行前③
# 対象フォルダ
$targetFolder = "C:\Users\user\Desktop\test"

$ws = New-Object -ComObject Wscript.Shell

try
{
    # 指定フォルダ配下(サブフォルダ含む)のフォルダのリストを取得
    $folderList = (Get-ChildItem $targetFolder -Directory -Recurse -ErrorAction Stop) | Sort-Object -Descending

    # リストの数だけ繰り返し
    foreach($folder in $folderList){
        # フォルダ配下に何もない場合は削除
        if ($folder.GetFileSystemInfos().Count -eq 0) {
            Remove-Item -Force $folder.FullName
        }
    }

    $ws.popup("空フォルダを削除しました。")
}
catch
{
    $ws.popup("エラー : " + $PSItem)
}

対象フォルダを指定します(2行目)。

「Get-ChildItem」コマンドレットにより「指定フォルダ配下(サブフォルダ含む)のフォルダのリスト」を取得します(9行目)。
※「-Directory」を記載することで、対象を「フォルダのみ」にします。
※「-Recurse」を記載することで、サブフォルダも対象にします(再帰するようにします)。
※下位のフォルダから処理対象となるように、「Get-ChildItem」コマンドレットの結果を「Sort-Object」コマンドレット

 渡します。

フォルダ配下に何もない場合に、フォルダを削除します(14~16行目)。

PR

実行結果

空フォルダを一括で削除できました。

実行結果①
実行結果①
実行結果②
実行結果②
実行結果③
実行結果③
PR

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

●「Get-ChildItem」コマンドレット


「Sort-Object」コマンドレット


「Remove-Item」コマンドレット

タイトルとURLをコピーしました