コマンドで指定したフォルダの中のファイル・フォルダーをすべて削除する方法

 
文書番号:20009




コマンドプロンプトで「指定したフォルダの中にあるファイルとフォルダーをすべて削除する」方法です。

rmdir コマンドで「/S」スイッチを付けるとサブディレクトリもすべて消してくれますが、この場合は指定したフォルダも含めて削除してしまいます。

指定したフォルダは残して、その中のファイル・フォルダをすべて削除する場合は指定したフォルダの中のフォルダを順に rmdir する必要があります。


rem まずファイルをすべて削除します。
C:\>del 削除対象のフォルダ

rem 削除対象のフォルダ内のフォルダに対して rmdir を実行します。
C:\>for /D %%1 in (削除対象のフォルダ) do rmdir /s /q "%%1"

※上記のコマンドをbatファイルで実行する場合、変数はコマンドライン引数と区別するために
 %%1のように%を2つ続けて記載します。

ログ出力も含めたバッチファイルで実行するサンプル

cd \
@echo off

rem ログファイルのパスを指定
SET LOG=C:\temp\log.txt

rem 削除対象のフォルダを指定
SET TARGET=C:\AAA\*

rem 開始ログ出力
echo %DATE% %TIME% 処理開始 >%LOG%

rem ファイルをすべて削除
del /S /Q %TARGET% >>%LOG%

rem 削除対象フォルダの中のフォルダ構造をすべて削除
for /D %%1 in (%TARGET%) do rmdir /S /Q "%%1" >>%LOG%

rem 終了ログ出力
echo %DATE% %TIME% 処理終了 >>%LOG%