
パソコンを使っていると、一時ファイルや古いログファイルなど、不要なファイルが徐々に蓄積していきます。これらを手動で削除するのは手間がかかるため、PowerShellスクリプトで自動化する方法が便利です。
この記事では、Windows 11環境で使える、不要なファイルを削除するPowerShellスクリプトの書き方と実行方法を紹介します。
目次
不要ファイルを削除する基本スクリプト
指定フォルダ内の一時ファイルを削除する
$target = "C:\Temp"
Get-ChildItem -Path $target -Recurse -Include *.tmp,*.log -ErrorAction SilentlyContinue | Remove-Item -Force
このスクリプトは、C:\Temp
フォルダ内の .tmp
および .log
ファイルをすべて削除します。
一定期間以上経過したファイルのみ削除する
$days = 30
$path = "C:\Logs"
Get-ChildItem -Path $path -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } | Remove-Item -Force
この例では、C:\Logs
配下で30日以上更新されていないファイルを削除します。
スクリプトの応用例
複数のフォルダを対象にする
$folders = @("C:\Temp", "C:\Downloads")
foreach ($folder in $folders) {
Get-ChildItem -Path $folder -Recurse -Include *.tmp,*.bak -ErrorAction SilentlyContinue | Remove-Item -Force
}
ログファイルとして記録を残す
$logPath = "C:\CleanupLog.txt"
$target = "C:\Temp"
$date = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
"[$date] Cleanup started for $target" | Out-File -Append $logPath
Get-ChildItem -Path $target -Recurse -Include *.tmp,*.log | ForEach-Object {
"[$date] Deleting: $($_.FullName)" | Out-File -Append $logPath
Remove-Item $_.FullName -Force
}
スクリプトの実行方法
- PowerShellを管理者として起動
.ps1
ファイルにスクリプトを保存- 実行ポリシーを変更(初回のみ)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- スクリプトを実行
./CleanupScript.ps1
関連リンク
まとめ
PowerShellスクリプトを使うことで、不要ファイルの削除作業を効率化できます。定期的に実行すれば、PCのパフォーマンス維持にもつながります。用途に応じてスクリプトを調整し、より快適なWindows環境を保ちましょう。

最後までお読みいただきありがとうございます。
コメント