フォルダ整理のためにロボットになった気分を味わったことない? 例えば、デザイン素材や写真を何百枚もダウンロードしたら、ファイル名が全部 IMG_999_final_banget_v2.jpg みたいにぐちゃぐちゃ。もっとひどいのは、「ダウンロード」フォルダがマンモス時代からのゴミでいっぱいで、SSDが悲鳴をあげているとき。
いまだに右クリックで1件ずつリネームとか削除してるなら… 本当に貴重な時間を無駄にしてるよ。
この記事では、Windowsに自動で仕事をさせる簡単なPowerShellスクリプトの作り方を教える。君はコーヒーを飲みながら座ってるだけでいい。スクリプトが残りの面倒を全部やってくれる。
PowerShell: ただの青い画面じゃない
「なんでCMDじゃダメなんだ?」ってよく聞かれる。実はPowerShellはCMDよりもずっと賢い。オブジェクトを読み取れるんだ。1GB以上のファイルや、1年間開いていないファイルを探したいなら、PowerShellなら超簡単に見つけられる。
自動リネーム:フォルダをおしゃれに
例えば、カメラの写真が DSC001、DSC002 って名前で入ってるフォルダがあるとする。これを Cool_Project_001 みたいに変えたいと。
このコードを使え:
# 対象フォルダのパスを変更してね!
$folderPath = "C:\Users\あなた\Documents\プロジェクト_アセット"
# 全ファイルを取得してリネーム
Get-ChildItem -Path $folderPath | ForEach-Object {
$newName = $_.Name -replace "DSC", "Cool_Project"
Rename-Item -Path $_.FullName -NewName $newName
} なぜこれで動くか:
Get-ChildItem: PowerShellに 「なあ、このフォルダの中見てよ」 と指示するコマンド。-replace: ゴミみたいな単語を好きな単語に置き換える魔法の命令。
自動削除:元カノ…じゃなくてゴミファイルを捨てる!
Tempフォルダやダウンロードフォルダは幽霊屋敷みたいになってるはず。30日以上触ってないファイルを自動削除するスクリプトを作ろう。
このコードをコピペ:
# ゴミフォルダのパス
$trashPath = "D:\Downloads\Trash"
$daysLimit = 30
# 期限切れファイルを探して削除!
Get-ChildItem -Path $trashPath -Recurse | Where-Object {
$_.LastWriteTime -lt (Get-Date).AddDays(-$daysLimit)
} | Remove-Item -Force もし削除を間違えるのが怖ければ、Remove-Item の行の最後に -WhatIf を追加して。そうするとPowerShellは 「これらを削除します」 と表示するだけで、実際には削除しない。だから事前に確認できる。
自動実行する方法(毎回クリックしなくていい)
上記のスクリプトも、毎日手動で開いて実行するんじゃ意味がない。Windows標準のタスクスケジューラを使おう:
ステップ1
スタートメニューで「タスクスケジューラ」を検索。
ステップ2
「基本タスクの作成」を選び、「フォルダ掃除」みたいな名前を付ける。
ステップ3
「操作」で「プログラムの開始」を選択。
ステップ4
「プログラム/スクリプト」に powershell.exe と入力。
ステップ5
「引数を追加」に以下を入力:
-ExecutionPolicy Bypass -File "C:\Path\To\Your\Script.ps1"
完了! これで毎朝PCを起動するたびに、そのスクリプトが自動でバックグラウンド実行される。
結論
今の時代にまだ手作業でやってるの? もったいないよね。このくらいの小さい自動化だけで、効率的なパワーユーザーに一歩近づける。