「この100枚の写真、全部『現場写真_001』から順に名前を付け直しておいて」
上司やクライアントからの何気ない一言に、絶望したことはないだろうか。1つずつファイルを選択し、F2キーを叩き、数字を入力して、Enter。この「地獄の連打」を繰り返しているうちに、指は腱鞘炎を訴え、頭の中では「自分は何のために大学を出たのか」という虚無感が渦巻く。
しかし、安心してください。Windowsには、標準で「最強の杖」が備わっています。それがPowerShellです。専用ソフトをインストールする必要も、面倒な設定も不要。たった一行の「呪文」を唱えるだけで、数時間かかるはずだった作業が、瞬きをする間に完了します。
この記事では、大量のバラバラなファイルに一瞬で秩序をもたらす、PowerShellの連番リネーム術を伝授します。F2キーを連打する人生に、今日ここで別れを告げましょう。その1秒のコードが、あなたの貴重な1時間を確実に救い出します。
手作業はもう限界?一括リネームが必要な理由
「たかがファイル名でしょ?」と侮るなかれ。ビジネスの現場において、ファイル名が整っていないことは、散らかったデスクで仕事をするのと同じです。必要な書類を探すたびに手を止められ、思考のフローが途切れてしまう。
あなたは、ファイル名がバラバラなフォルダを開いたとき、目的のファイルが一番下にあることに気づかず、上から下までスクロールを繰り返した経験はないでしょうか?
ファイル名がバラバラだと起きる「ソートの悲劇」
なぜ、わざわざ連番を振る必要があるのでしょうか。その最大の理由は「ソート(並び替え)の安定性」にあります。
Windowsのエクスプローラーは賢いようでいて、実は非常にデリケートです。「会議資料1」「会議資料10」「会議資料2」という順に並んでしまい、時系列がめちゃくちゃになった経験は誰にでもあるはずです。これは、コンピュータが文字を先頭から一文字ずつ比較していく性質上、避けられない現象です。
「SNSでは『ファイル名の整理だけで残業が減った』という声も少なくない」と言われるほど、この些細な整列が業務効率を左右します。具体的には、001のように桁数を揃える(パディングする)ことで、どんな環境でも意図した通りの順番が守られます。
それは、栄養の切れた田んぼで耕作を続けるようなもの。どれだけ情熱を持って作業をしても、基礎となるファイル管理が痩せていれば、最終的なアウトプットの精度も落ちていくのです。規則性は、美しさの第一要件であり、生産性の絶対条件と言えます。
【コピペOK】連番付与を実現する魔法のワンライナー
それでは、実際にPowerShellを使った「黒魔術」を見ていきましょう。Windowsのスタートメニューを右クリックして「Terminal(またはPowerShell)」を起動し、リネームしたいファイルがあるフォルダへ移動したら、以下のコードを流し込んでください。
$i = 1; Get-ChildItem *.jpg | ForEach-Object { Rename-Item $_ -NewName ("Photo_{0:D3}.jpg" -f $i++) }
この一行を実行した瞬間、フォルダ内のJPGファイルはすべて「Photo001.jpg」「Photo002.jpg」……と美しく整列します。まるで、不揃いな石ころを、河原の美しい石畳に一瞬で並べ替える魔法のようです。
コード解説:$i=1から始まる自動採番の仕組み
この呪文が何をしているのか、少しだけ紐解いてみましょう。エンジニアの間では「ワンライナー(一行で済むコード)」として愛されている書き方です。
$i = 1: これは「カウンター」の準備です。数字を1から数え始めることを宣言しています。Get-ChildItem *.jpg: フォルダの中から「JPGファイルだけを全部集めてこい」という命令です。ForEach-Object { ... }: 集めたファイルに対して、一つずつ順番に「{ }」の中の処理を実行していきます。Rename-Item ... -f $i++: ここが核心部です。-fという演算子が、{0:D3}という部分を「3桁の数字(001など)」に変換します。そして、一回処理が終わるごとに$i++(数字を1増やす)という動作を繰り返します。
この -f という記号は、実はプログラミング言語C#などで使われる非常に強力な書式設定の仕組み(.NETのString.Format)を呼び出しています。「専門家の間では、この演算子を知っているかどうかでPowerShellの中級者かどうかが決まる」と言われるほど、美しく効率的な書き方です。一瞬で野菜を同じ大きさに切りそろえる電動スライサーのように、あなたの指示通りに正確に名前を削り出します。
失敗を防ぐための!「実行前」の安全確認テクニック
「コードを打つのは怖い。もし間違えて大事なファイルが消えたり、変な名前になったら?」そう思うのは当然です。魔法にはリスクがつきもの。しかし、PowerShellには「時を止めて結果を予知する」安全装置が備わっています。
「業界では、実行前に必ず『ある呪文』を付け加えるのが鉄則とされている」のをご存知でしょうか。
-WhatIfパラメータでシミュレーションする
コマンドの最後に、半角スペースを空けて -WhatIf と入力してみてください。
$i = 1; Get-ChildItem *.jpg | ForEach-Object { Rename-Item $_ -NewName ("Photo_{0:D3}.jpg" -f $i++) } -WhatIf
これを実行しても、実際のファイル名は1文字も変わりません。代わりに、画面には「もし実行したら、[A]というファイルが[B]という名前に変わります」というシミュレーション結果が表示されます。
これは、迷子になった100人のツアー客に、実際に背番号を配る前に「誰に何番を配るか」の名簿を下書きで作るようなものです。下書きを見て間違いがないことを確認してから、-WhatIf を消して本番実行すればいいのです。
混沌(カオス)に秩序(オーダー)をもたらす行為は、エントロピーの増大に抗う知的生命体の本能ですが、知的な存在であればこそ、その手段には慎重さも必要です。この一工夫だけで、データの消失や誤操作という「絶望」を100%回避できます。
応用編:JPG以外やファイル名の接頭語を変える方法
一度この基礎を覚えれば、応用は無限大です。料理と同じで、基本のレシピ(ワンライナー)さえあれば、具材(拡張子)や味付け(ファイル名)を変えるのは簡単です。
「SNSでは『この型を覚えるだけで、あらゆる事務作業が自動化できた』という喜びの声が広がっている」ほど、汎用性の高い技術です。
PDFやExcelなど、他形式へのカスタマイズ
例えば、PDFの資料を一括でリネームしたい場合は、コードの中の *.jpg を *.pdf に変えるだけです。
- 提出用の資料にする場合(例:見積書_01~)
("見積書_{0:D2}.pdf" -f $i++)と書き換えてください。D2にすれば「01」のように2桁になります。 - 初期値を101から始めたい場合最初の
$i = 1を$i = 101に変えるだけです。
手作業なら「101、102、えーと次は……」と脳のリソースを消費しますが、PowerShellにとって数字を数えるのは呼吸と同じ。あなたがコーヒーを一口飲んでいる間に、軍隊の検閲官のように整然と兵士(ファイル)を整列させ、認識番号を与えてくれます。
「わざわざコマンドを打つ方が遅い」という意見も稀にありますが、それは対象が数枚の場合だけです。処理するファイルが10枚を超え、100枚になり、1000枚になったとき、あなたの1秒のタイピングは、他人の3時間を一瞬で消失させるほどの威力に変わります。
まとめ:PowerShellを使いこなして「時短のプロ」へ
ここまで、PowerShellを使ったファイル名の一括リネーム術について解説してきました。今回の重要なポイントは以下の3点です。
- ソート順を守るために「001」のような桁揃え(パディング)が必須であること
-fという演算子を使えば、一行(ワンライナー)で美しい連番が付与できること-WhatIfパラメータを使うことで、リスクゼロでシミュレーションができること
もしあなたが今日、デスクトップに散らばった適当な名前の画像ファイルを持っているなら、まずは1つ、-WhatIf をつけてコマンドを打ってみてください。それが、あなたにとっての「自動化文化」の第一歩になります。
単なるリネーム作業ではなく、Windowsの深淵に触れる「魔法」を覚えることで、PCというツールは単なる道具から、あなたの意志を拡張する手足へと変わります。かつて「手動リネームの迷宮」で絶望していた時間が、これからは本来の価値ある仕事、あるいは大切な人との時間に変わることでしょう。
散らかった図書館の本に、一瞬で背表紙の番号を刻印する印章魔法。その杖は、すでにあなたのPCの中にあります。
規則性は、美しさの第一要件だ。 今日から、あなたのフォルダに完璧な秩序を取り戻しましょう。
コメント