WindowsのBatch(cmd)/PowerShellで0バイトのファイル(空ファイル)や空のディレクトリを一括削除する
Pocket

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
Sponsored Links

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

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*