こんばんは!今回は、フォルダ内のファイルとフォルダを一括で削除するバッチファイルを作成したいと思いました。なぜ、そのようなバッチファイルを作成したかったかというとWindows10で度々エクスプローラーが固まる事象が出る問い合わせが増えてきたのです。
Windowsのtempフォルダ内を全削除すれば、改善することがあるという記事を見てこのバッチファイルを思いつきました。
フォルダの中身を空にするバッチ
tempフォルダとは?
Windowsのtempフォルダとは、「TEMP」=「temporary (一時的な)」の略です。
一時的に生成されたファイルをおく場所が「TEMPフォルダ」になります。消えて困るファイルはこのフォルダにはないと思って大丈夫です。
一時ファイルが格納される場所でC:\windows\tempにあります。アプリケーションを使った作業が終了するとtempフォルダ内から消えるのですが、強制的に終了したり意図せずアプリケーションを落としたりすると一時ファイルが消えず溜まっていきます。
このtempフォルダの容量が増えすぎると、Windowsのエクスプローラーが固まったりする事象が起きるらしいのです。
あるユーザーのtempフォルダを削除して状況が改善されたのでバッチファイルを作成してみることにしました。
ファイルとフォルダを一括削除するバッチ コード
ファイルを削除するにはdelコマンド。フォルダを削除するにはrmdirコマンドを使用します。rmdirコマンドを使用すれば簡単に出来そうな気がしますが、rmdirコマンドはフォルダの中身ではなくフォルダごと削除するコマンドになります。
そこで、フォルダの中身を削除するバッチファイルコードは下記になります。コピペしてそのまま貼付けてバッチファイルとして使用できます。
@echo off
rem ####################
rem tempフォルダ内の削除
rem ####################
rem カレントディレクトリの変更
cd “C:\Windows\Temp”
echo ファイルを削除しています。クリーンアップ中
echo.
echo.
rem ファイルの削除
del /Q *
echo フォルダを削除しています。クリーンアップ中
echo.
echo.
rem フォルダの削除
for /F %%a in (‘dir /ad /b /w *’) do rmdir /S /q %%a
timeout /t 5
このコードでフォルダの削除ができます。
フォルダの削除は単純に rmdir * で削除が出来ると思ったのですがこのコマンドだと出来ません。またrmdir tempだとtempフォルダ自体を削除するコマンドになってしまいます。
for文の行はオプションが多く覚えづらいので、そのままコピペして使えるので試してみてください。
バッチファイルでは for /F %%a in (‘dir /ad /b /w *’) do rmdir /S /q %%aと記述します。コマンドプロンプトで実行する場合は正規表現の関係で%%aは%aに変更します。
フォルダごと削除したい場合
フォルダごと削除したい場合は下記の記事に記述していますので参考にしてみてください。それではー!