【PowerShell】フォルダ内のファイル全てリネーム

仕事で、あるフォルダ内にあるファイル全てにサフィックスを付ける、という作業が発生しました。

対象フォルダは3つ。

1つ目のフォルダはファイル総数が30程度だったので、手作業で直しました。

が、2つ目のフォルダに格納されていたファイル数なんと200超…。

さすがに手で直すのはしんどかったので、コマンド(あるいはプログラム)での対処を検討しました。

さっそくですが、下記コマンドで一発でした。

Get-ChildItem | Rename-Item -NewName{$_.Name -Replace ".JPG","_xxx.JPG"}

コマンド実行時の条件としては以下の通りです。

条件
  • 任意のフォルダ内に変換対象ファイルのみ存在する。
  • 変換対象の拡張子はすべて「.JPG」
  • 変換対象の存在する任意のフォルダでPowerShellを開いている。

軽く解説します。

Get-ChildItem

カレントフォルダ(現在位置)内のファイル全てを取得します。

| Rename-Item

取得したファイルの名前の変更を行います。

-NewName{$_.Name -Replace ".JPG","_xxx.JPG"}

新しい名前は、現在の名前の「.JPG」を「_xxx.JPG」に変換した値を設定します。

補足しておきますが、Get-ChildItemに引数としてパスを渡すことでカレントフォルダ以外の場所からでも実行可能です。

が、個人的にはわざわざパスを指定するくらいなら実行位置を変えた方が楽だったのでこうなりました。

どこかでお役に立てば幸いです。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください