PowerShellで古いファイルを自動削除する方法とは?
サーバー運用や業務PCでは、次のようなファイルが溜まりがちです。
-
ログファイル
-
一時ファイル
-
バックアップファイル
-
作業途中の出力データ
これらを放置すると、
✅ ディスク容量を圧迫
✅ バックアップ時間が増大
✅ 管理が煩雑
といった問題が発生します。
そこで便利なのが PowerShellによる自動削除処理 です。
基本構文:○日前より古いファイルを削除する
まずは最もシンプルな例です。
処理内容の解説
| 処理 | 内容 |
|---|---|
| Get-ChildItem | フォルダ内のファイル取得 |
| -File | ファイルのみ対象 |
| LastWriteTime | 最終更新日 |
| AddDays(-30) | 30日前の日付 |
| Remove-Item | ファイル削除 |
👉 30日より前のファイルが削除されます
フォルダも含めて削除したい場合
※ -Recurse を付けることで
👉 サブフォルダ配下も含めて削除されます。
拡張子を指定して削除する(例:.log のみ)
ログファイル整理にはこの形式がよく使われます。
削除前に確認したい場合(安全モード)
いきなり削除せず、まずは対象を確認したい場合:
または削除コマンドをコメントアウト:
|
1 |
# Remove-Item -Force |
実運用でよく使うサンプル(おすすめ)
✔ 安全
✔ 可読性が高い
✔ バッチ・タスクスケジューラ向き
タスクスケジューラと組み合わせると最強
このスクリプトを .ps1 に保存し、
Windows タスクスケジューラに登録すれば:
-
毎日深夜に自動削除
-
サーバー運用の手間ゼロ
-
容量トラブル防止
が可能になります。
注意点(重要)
⚠ 削除処理は元に戻せません
以下は必ず守りましょう。
-
最初は
Remove-Itemを外して確認 -
本番前にテストフォルダで実行
-
重要フォルダは対象外にする
-
管理者権限が必要な場合あり
まとめ
✅ PowerShellで古いファイルは簡単に削除できる
✅ LastWriteTime × AddDays() が基本
✅ ログ整理・容量対策に必須
✅ タスクスケジューラと組み合わせると最強

