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

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

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