【バッチファイル】空フォルダを一括で削除する

バッチファイルで
 ・空フォルダを一括で削除
できます!
サブフォルダ配下の空フォルダも一括で削除できます。

PR

コード

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

実行前①
実行前①
実行前②
実行前②
実行前③
実行前③
@echo off

rem 対象フォルダを指定
set targetFolder=C:\Users\user\Desktop\test

rem フォルダの存在有無を確認
if not exist %targetFolder% (
    echo 対象フォルダが存在しないため、処理を終了します。
    echo.
    pause
    exit
)

rem フォルダ(サブフォルダ含む)を取得するコマンドを作成
set cmd="dir %targetFolder% /ad /b /s | sort /r"

rem 空フォルダを削除 ※空でないフォルダの削除は失敗する
for /f "delims=" %%a in ('%cmd%') do (
    rd /q %%a 2> NUL
)

echo 空フォルダを削除しました。
echo.

pause
exit

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

「対象フォルダ」が存在しない場合は、処理を終了します(7~12行目)。

「フォルダ(サブフォルダ含む)を取得するコマンド」を作成します(15行目)。
「dir」コマンドによりフォルダを取得します。
パラメータ/ad」により、フォルダのみを対象とします。
パラメータ/b」により、「dir」コマンドの結果から余計な情報を除きます。

パラメータ/s」により、サブフォルダも対象とします。
※下位のフォルダから処理対象となるように、「dir」コマンドの結果を「sort」コマンドに渡します。
※「|」をエスケープしなくてもいいように、コマンドを「”(ダブルコーテーション)」で囲みます。

空フォルダを削除を削除します(18~20行目)。
「rd」コマンドにより削除します。
※空フォルダ以外にも「rd」コマンドが実行されますが、パラーメータ「/s」を記載していないため「rd」コマンドが
 失敗します。結果的に空フォルダのみが削除されます。

PR

実行結果

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

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

参考

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

●「dir」コマンド


●「sort」コマンド


●「rd」コマンド

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