WindowsでBatchやPowerShellを用いて、Linuxと同じように空ファイルや空ディレクトリを抽出、それらを一括削除する方法があるかを調べてみた。

1.空ファイルの削除

カレントディレクトリ配下の空ファイルを一括削除する場合、以下のようにする。
(PowerShellの方は再帰的に削除させている)

Batch(cmd)の場合

for %F in (*) do if %~zF equ 0 del "%F"

PowerShellの場合

get-childItem -recurse | where {$_.length -eq 0} | remove-Item

2.空ディレクトリの削除

カレントディレクトリ配下の空ディレクトリを一括削除する場合、以下のようにする。

Batch(cmd)の場合

for /f "usebackq delims=" %d in (`"dir /ad/b/s | sort /R"`) do rd "%d"

PowerShellの場合

Get-ChildItem -recurse | Where-Object {$_.PSIsContainer -eq $true -and (Get-ChildItem -Path $_.FullName) -eq $null} | Remove-Item