パソコンを長く使っていると、知らないうちに不要なフォルダが増えてしまうことがあります。特にバックアップや作業フォルダを繰り返し作成・削除していると、空のフォルダが大量に残ってしまい、管理が煩雑になりがちです。手作業で1つずつ確認して削除するのは効率が悪いため、Windowsのバッチファイルを活用して自動で「空のフォルダを探して削除する」仕組みを用意しておくと便利です。
本記事では、バッチファイルを使って空フォルダを削除する方法を、初心者でもわかりやすいように具体的なサンプルコードと実行手順を交えて解説します。さらに、応用編として「特定のフォルダだけ対象にする方法」や「ログを残す方法」についても紹介します。
空のフォルダは一見すると害がないように思えますが、整理整頓の観点からは放置しない方がよいケースがあります。
こうした理由から、特にプロジェクトや業務用PCでは定期的に空フォルダを削除しておくことがおすすめです。
Windowsバッチファイル(.bat)は、コマンドプロンプトで実行できる命令をまとめたテキストファイルです。
今回の目的は「空のフォルダを探して削除」なので、for
コマンドと rd
コマンドを組み合わせて使います。
以下は、指定フォルダ配下の空フォルダをすべて削除するバッチファイルの例です。
@echo off
set TARGET=C:\test
for /f "delims=" %%d in ('dir "%TARGET%" /ad/b/s ^| sort /R') do (
rd "%%d" 2>nul
)
echo 空フォルダ削除が完了しました。
pause
set TARGET=C:\test
dir "%TARGET%" /ad/b/s
sort /R
rd "%%d" 2>nul
delete_empty_folders.bat
などの名前で保存。対象フォルダのパスを変更すれば、任意の場所で利用できます。
削除したフォルダを確認できるように、ログを残すことも可能です。
@echo off
set TARGET=C:\test
set LOG=C:\delete_log.txt
echo 削除ログ開始 > "%LOG%"
for /f "delims=" %%d in ('dir "%TARGET%" /ad/b/s ^| sort /R') do (
rd "%%d" 2>nul && echo 削除: %%d >> "%LOG%"
)
echo 完了しました。ログは %LOG% に保存されました。
pause
このコードでは、削除できたフォルダだけをログファイルに記録します。
空フォルダでも、削除したくないケースもあります。その場合は条件分岐を加えられます。
@echo off
set TARGET=C:\test
for /f "delims=" %%d in ('dir "%TARGET%" /ad/b/s ^| sort /R') do (
echo %%~nd | findstr /I "keep" >nul
if errorlevel 1 rd "%%d" 2>nul
)
この例では、フォルダ名に「keep」を含むフォルダは削除対象から外します。
バッチファイルをWindowsタスクスケジューラに登録すれば、自動で定期的に空フォルダを削除できます。例えば「毎週日曜日の深夜に実行」と設定すれば、手動操作なしで整理が進みます。
本記事では、Windowsバッチファイルを使って空のフォルダを探して削除する方法を解説しました。
for
と rd
を組み合わせるだけで実現可能。シンプルですが非常に実用的なテクニックなので、ぜひ日常業務やPC整理に役立ててください。