bat/cmd

フォルダの中身を空にする バッチファイル 備忘録

こんばんは!今回は、フォルダ内のファイルとフォルダを一括で削除するバッチファイルを作成したいと思いました。なぜ、そのようなバッチファイルを作成したかったかというと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

このコードでフォルダの削除ができます。

バッチを記述するときは対象のフォルダへcd コマンドでカレントディレクトリを移動してからこのコマンドを利用してください。カレントディレクトリを移動しないと思わぬファイルが削除されてしまうのでご注意ください。

フォルダの削除は単純に rmdir * で削除が出来ると思ったのですがこのコマンドだと出来ません。またrmdir tempだとtempフォルダ自体を削除するコマンドになってしまいます。

for文の行はオプションが多く覚えづらいので、そのままコピペして使えるので試してみてください。

バッチファイルでは for /F %%a in (‘dir /ad /b /w *’) do rmdir /S /q %%aと記述します。コマンドプロンプトで実行する場合は正規表現の関係%%a%aに変更します。

フォルダごと削除したい場合

フォルダごと削除したい場合は下記の記事に記述していますので参考にしてみてください。それではー!

ABOUT ME
なお
フルスタックエンジニアを目指すサラリーマン。インフラ、WEBを中心に色んなIT関連情報に手を出したいと思います。
ブログランキング

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA