Windowsのバッチファイルを用いることでファイルやフォルダの削除を行うことができます。本記事では、ディレクトリ構造を保持したまま中のファイルだけを全て削除する方法を紹介します。
本記事で用いているファイル削除のためのdelコマンドについては、以下の記事で紹介していますので、もし詳しく知りたい方は参照してみてください。
例えば、カレントディレクトリ直下に以下のようなフォルダ構成があったとします。カレントディレクトリに「Root」というフォルダがあり、その下に「A」「B」「C」というフォルダがあり、「A」の中に「AA」と「AB」というフォルダがあります。
「AA」「AB」「B」「C」に2つずつテキストファイルが入っています。
今回実現したいことは、この001.txtと002.txtを一掃しつつ、ディレクトリは全て残すということです。すなわち、一発で以下の状況にするバッチを紹介します。
以下のコマンドで、想定の動作を実現することができます。Rootフォルダのある場所で以下のコマンドを実行することで、全ての001.txtと002.txtを一掃しつつ、ディレクトリを残すことができます。
del /S /Q Root
今回使われているdelコマンドのオプションは以下の通りです。
\Qコマンドを付けることでフォルダの削除に対して確認を求められることがなくなります(確認を得たい場合にはこのオプションは消去してください、\Qコマンドを消すと「ファイルの削除をしますか」という確認をコマンドプロンプト上で求められるようになります)。
\Sコマンドを付けることで、Rootフォルダだけではなく、Rootフォルダ以下の全てのディレクトリを見に行きます。
今回はWindowsの.bat(バッチファイル)で、ディレクトリ構造を保持したまま中のファイルのみ削除する方法を紹介しました。
ディレクトリは全部残したいけど、ファイルは全部消してしまいたいというときに、全部のディレクトリを参照して手動でファイルを消したりするのは大変ですよね。
コマンドを使うことで、このようなファイルのみの削除を簡単に実現することができます。