Windows活用 拡張子の一括変換



拡張子の一括変換


ファイルの拡張子をまとめて変更する(コマンド・プロンプト編)
例えば「〜.gif」という名前のファイルの拡張子だけを「〜.jpg」に変更する場合
コマンド・プロンプト上のrenコマンドを使って、ファイルの拡張子をまとめて変更する。
renコマンドの基本的な使い方
コマンド・プロンプト上でファイル名を変更するには、「ren」もしくは「rename」コマンドを使用する(どちらでも同じ)。
renコマンドは、指定したファイルやフォルダの名前を変更するためのコマンドであり、
一般的には次のように、「ren <変更前の名前> <変更後の名前>」というふうに利用する
(ファイル名に空白などの特殊文字が含まれる場合は引用符で囲む)。


※test1.gifをtest1.jpgに名前変更する例
例 C:>ren test1.gif test1.jpg









※これは、*.gifにマッチするすべてのファイルを、*.jpgに名前変更する例
C:\Data>ren *.gif *.jpg











forコマンドによるサブフォルダの処理

さてそれでは、フォルダが複数ある場合はどうすればよいだろうか。
いちいちフォルダ名を指定しながら、renコマンドを繰り返すのは非常に面倒である。
そういう場合は、forコマンドと組み合わせるとよい。

forコマンドでフォルダ名(サブフォルダ名)を列挙するには、
「for /d %変数名 (*) do コマンド列」とする(変数名は任意の英字1文字)。
例えば次のコマンドを実行すると、フォルダ名の一覧が(echoコマンドで)表示される(変数名は「i」を使用)。


C:\Data>for /d %i in (*) do echo %i …フォルダ名の表示

C:\Data>echo Folder1
Folder1 …フォルダ名1の表示

C:\Data>echo Folder2
Folder2 …フォルダ名2の表示

C:\Data>echo Folder3
Folder3 …フォルダ名3の表示

フォルダの中にさらにサブフォルダがあり、階層的になっているなら、
/rオプションも指定する。するとすべてのサブフォルダが列挙される。

C:\Data>for /r /d %i in (*) do echo %i

これでフォルダ名の列挙が完了するので、これをrenコマンドと組み合わせれば、
サブフォルダにあるすべてのファイル名を名前変更できる。

C:\Data>for /r /d %i in (*) do ren %i\*.JPEG *.JPG

なお、ここではforコマンドでフォルダ名を列挙させているが、ファイル名を列挙させて個別にrenを実行することもできる。
forコマンドから/dオプションを外すと、フォルダ名ではなく、ファイル名が変数にセットされる。

C:\Data>for /r %i in (*) do ren %i *.JPG
echoで実行するコマンドを確認する

どのようなコマンドが実行されるか分かりづらい場合は、いきなりコマンドを実行するのではなく、
echoコマンドでコマンド文字列を表示させて、確認、デバッグするとよいだろう。
以上のコマンド列の「do」の直後に「echo」を入れ、次のようにする。

C:\Data>for /r %i in (*) do echo ren %i *.JPG

C:\Data>echo ren C:\Data\Sample1.JPEG *.JPG
ren C:\Data\Sample1.JPEG *.JPG …表示されたコマンド

C:\Data>echo ren C:\Data\Sample2.JPEG *.JPG
ren C:\Data\Sample2.JPEG *.JPG …表示されたコマンド

C:\Data>echo ren C:\Data\Sample3.JPEG *.JPG
ren C:\Data\Sample3.JPEG *.JPG …表示されたコマンド
…(以下省略)…

すると、実行するべきコマンドの文字列が表示されるので、内容を確認しやすくなる。
内容を確認後、echoを削除して、もう1度実行すればよい。



→HOME←