【初心者でもできる】古いファイルを自動削除するバッチの作り方を完全解説

前置きは不要!すぐにバッチの作り方を見る

はじめに

業務システムを使用していると、ログファイルなどが削除されずに溜まり続けることがあります。フォルダ内にファイルが溜まりすぎると、フォルダを開くのに時間がかかったり、手動で削除するにも手間がかかりますよね。そんなとき、一定期間が経過したファイルを自動的に削除してくれるバッチファイルがあれば、とても便利です。

この記事では、一定期間が経過したファイルを自動的に削除するバッチファイルの作り方を紹介します。このバッチファイルを活用すれば、必要なときに手動で実行することも、タスクスケジューラに登録して定期的に自動実行させることも可能です。手間を減らしたい方に、おすすめの方法です。

1. バッチファイルの基本

1.1 バッチファイルとは?

バッチファイルは、複数のコマンドをまとめて一度に実行できる「作業手順書」のような役割を持つものです。この「作業手順書」は「スクリプト」と呼ばれ、特定の手順を自動で実行させるためのファイルです。

例えば、Windows環境で繰り返し行う作業を効率化するために使用され、古いファイルを自動で削除したり、複数の操作を順番に実行させたりすることができます。スクリプトを使うことで、同じ操作を繰り返し手作業で行う必要がなくなり、時間や手間を大幅に節約できます。

1.2 古いファイルを削除するバッチファイルの仕組み

今回紹介するバッチファイルでは、forfilesコマンドを使用し、指定したフォルダ内で一定期間以上経過したファイルを自動的に削除します。これにより、手動でファイルを探して削除する手間が省け、ストレージの整理が容易になります。

2. 実際にバッチを作成してみよう

2.1 バッチファイルの基本コード

以下は、30日以上経過したファイルを削除するバッチファイルのサンプルです。

@echo off
forfiles /p "C:\YourFolder" /s /m *.* /d -30 /c "cmd /c del /q @path"
echo 30日以上経過したファイルを削除しました
pause

このコードでは、指定したフォルダ内で30日以上前に作成されたファイルを削除します。次に、各オプションの説明をします。

  • /pオプション: 検索対象フォルダのパスを指定します。この場合、C:\YourFolder配下のファイルが検索対象になります。
  • /sオプション: サブディレクトリも検索対象に含めます。
  • /mオプション: 検索対象のファイル名を指定します。*.*(全てのファイル)や*.log(拡張子がlogのファイル)のように指定して、検索条件に合うファイルを対象とします。
  • /dオプション: 日付の基準(最終更新日)を指定します。この例では、30日以上経過したファイルを対象にするために-30を指定しています。
  • /cオプション: 指定されたファイルに対して実行するコマンドを設定します。
cmd /c del /q @path の説明
  • cmd /c: コマンドプロンプトで指定されたコマンドを実行し、その後プロンプトを閉じます。この場合、del /q @pathコマンドが実行されます。
  • del: ファイルを削除するためのコマンドです。指定されたパスにあるファイルを削除します。
  • /q: 「クワイエットモード」で削除を実行し、確認のメッセージを表示しません。これにより、大量のファイルを削除する際に効率的に処理できます。
  • @path: forfilesコマンドで取得されたファイルのパスです。これに基づいてファイル削除が行われます。
2.2 ファイルパスの設定方法

コード内の"C:\YourFolder"部分を、削除したいファイルが保存されているフォルダのパスに変更してください。これにより、特定のフォルダ内のファイルが対象となります。

3. より効率的な運用のためのヒント

バッチファイルは、定期的に実行することでより効果的です。Windowsの「タスクスケジューラ」を使用すれば、バッチファイルを毎日や毎週などのスケジュールで自動実行できます。また、誤って重要なファイルを削除しないように事前に確認することも大切です。

まとめ

古いファイルを自動削除するバッチファイルを使えば、ストレージ管理を大幅に効率化できます。手動でのファイル削除作業を省けるため、時間を節約しつつパソコンを整理整頓できます。ぜひ、この方法を活用してPC環境を最適化してみてください。

こちらもおすすめの記事です。ぜひチェックしてみてください!

■バッチに詳しくなりたい方におすすめの記事■