Windowsパソコンを使っていると、Dドライブやデスクトップにデータがどんどん溜まっていきます。
「毎年決まった日に全部削除できたら楽なのに」
と思うこともありますよね。
今回は、Windowsの「タスク スケジューラ」とバッチファイルを使って、毎年12月25日にDドライブやデスクトップのデータを自動削除する方法について、実際のやり取り形式でまとめます。
Dドライブのデータを年1回すべて削除したい
私
Dドライブにあるデータを定期的に削除したいです。
たとえば1年に1回、12月25日にDドライブの中身を全部削除するような設定はできますか?
ChatGPT
はい、できます。
Windowsであれば、**「タスク スケジューラ」+「バッチファイル」**を使う方法が簡単です。
毎年12月25日など、指定した日に自動でDドライブ内のデータを削除できます。
一番シンプルなのは、以下のようなバッチファイルを作る方法です。
@echo off
del /f /s /q D:\*.*
for /d %%i in (D:\*) do rd /s /q "%%i"
この処理では、Dドライブ直下にあるファイルとフォルダを削除します。
Dドライブそのものは残ります。
メモ帳を開いてコードを貼り付け、
Dドライブ削除.bat
という名前で保存します。
その後、「タスク スケジューラ」に登録します。
手順は以下の通りです。
- Windowsのスタートメニューを開く
- 「タスク スケジューラ」と検索
- タスク スケジューラを起動
- 「基本タスクの作成」を選択
- 名前を「Dドライブ年次削除」などにする
- 実行日を毎年12月25日に設定
- 「プログラムの開始」を選択
- 作成したバッチファイルを指定
これで毎年12月25日に自動実行できます。
完全削除で問題ないので、Dドライブ全体を削除したい
私
いきなり完全削除で大丈夫です。
Dドライブの中身を全部削除する方法を教えてください。
それとは別に、デスクトップのデータを全部削除する方法も知りたいです。
ChatGPT
できます。
Dドライブ全削除用と、デスクトップ全削除用を別々のバッチファイルにしておくと分かりやすいです。
Dドライブの中身をすべて削除するバッチファイル
メモ帳を開いて、以下を貼り付けます。
@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Get-ChildItem -LiteralPath 'D:\' -Force | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue"
ファイル名は、たとえば以下のようにします。
Dドライブ全削除.bat
このバッチファイルを実行すると、
D:\
├─ aaa.txt
├─ 写真
├─ 動画
├─ backup
└─ その他のフォルダ
といったDドライブ直下のデータをまとめて削除できます。
Dドライブそのものや、ドライブ文字の「D:」が消えるわけではありません。
ファイルやフォルダの中身が削除されます。
Dドライブ全削除を毎年12月25日に実行する
Windowsの「タスク スケジューラ」を開きます。
設定内容は次のようにします。
- タスク名:Dドライブ全削除
- トリガー:毎年
- 実行日:12月25日
- 操作:プログラムの開始
- プログラム:Dドライブ全削除.bat
必要に応じて、「最上位の特権で実行する」にチェックを入れておくと、権限不足によって削除できないファイルが発生しにくくなります。
これで、毎年決まった日にDドライブの中身を自動で整理できます。
デスクトップのデータを全部削除する方法
次はデスクトップです。
デスクトップは環境によって保存場所が違う場合があります。
一般的には、
C:\Users\ユーザー名\Desktop
ですが、OneDriveを使っている場合などは別の場所になっていることがあります。
そこで、Windowsから現在のデスクトップの場所を自動取得する方法を使います。
メモ帳に以下を貼り付けます。
@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "$desktop=[Environment]::GetFolderPath('Desktop'); Get-ChildItem -LiteralPath $desktop -Force | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue"
ファイル名は、
デスクトップ全削除.bat
などにします。
これを実行すると、現在のユーザーのデスクトップにあるファイルやフォルダが削除されます。
たとえば、
Excelファイル
画像
動画
ZIPファイル
テキストファイル
ショートカット
フォルダ
などが対象になります。
デスクトップというフォルダそのものは残ります。
Dドライブとデスクトップをまとめて削除する方法
「どうせ同じ日に消すなら、1つのバッチファイルでまとめたい」
という場合は、以下のようにできます。
@echo off
rem Dドライブの中身を全削除
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Get-ChildItem -LiteralPath 'D:\' -Force | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue"
rem デスクトップの中身を全削除
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "$desktop=[Environment]::GetFolderPath('Desktop'); Get-ChildItem -LiteralPath $desktop -Force | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue"
exit
ファイル名は、
年末データ全削除.bat
などにしておけば分かりやすいです。
このバッチファイルをタスク スケジューラに登録して、毎年12月25日に実行するようにすれば、
Dドライブの中身を削除
↓
デスクトップの中身を削除
という流れを自動化できます。
タスク スケジューラへの登録方法
まとめて削除する場合も設定方法は同じです。
Windowsの検索欄に、
タスク スケジューラ
と入力して起動します。
「タスクの作成」または「基本タスクの作成」を選択します。
タスク名は、
年末データ全削除
などにしておきます。
トリガーは毎年に設定し、日付を12月25日にします。
操作は「プログラムの開始」を選択し、作成した、
年末データ全削除.bat
を指定します。
これで設定完了です。
一度作ってしまえば、毎年自分でファイルを選択して削除する必要がありません。
年末になると「このファイルいるかな……」「まあ一応残しておくか」と判断しているうちに、結局何も減らないことがあります。
自動削除にしてしまえば、その迷いも発生しません。
まとめ
今回の方法では、Windowsのバッチファイルとタスク スケジューラを組み合わせることで、Dドライブやデスクトップのデータを定期的に削除できます。
Dドライブだけを削除する場合は、
@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Get-ChildItem -LiteralPath 'D:\' -Force | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue"
デスクトップだけの場合は、
@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "$desktop=[Environment]::GetFolderPath('Desktop'); Get-ChildItem -LiteralPath $desktop -Force | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue"
を使います。
両方まとめることもできます。
毎年12月25日など、自分で決めた日に実行するようタスク スケジューラへ登録しておけば、あとはWindows側で自動処理してくれます。
「毎年同じ作業を手動でやるのが面倒」という人にとっては、かなり便利な方法です。

コメント