windowsコマンドでファイル名を変更(リネーム)する

2017.10.14

windows のコマンドを使って、ファイル名を変更したい。

ren コマンドか rename コマンドを使用する。

どちらも動作は同じなので、コマンドが短い ren の方を使用する。

まずは、help をコマンドを使って、ヘルプを見る。

C:\tmp>help ren

ファイル (複数可) の名前を変更します。

RENAME [ドライブ:][パス]ファイル名1 ファイル名2
REN [ドライブ:][パス]ファイル名1 ファイル名2

ファイル名2 には新しいドライブもパスも指定できないので注意してください。

ちなみに、rename のヘルプを見てみると、同じ内容。

C:\tmp>help rename
ファイル (複数可) の名前を変更します。

RENAME [ドライブ:][パス]ファイル名1 ファイル名2
REN [ドライブ:][パス]ファイル名1 ファイル名2

ファイル名2 には新しいドライブもパスも指定できないので注意してください。

単純にファイル名をリネームしてみる

test.jpeg を testtest.jpeg に変換する。

C:\tmp>ren test.jpeg testtest.jpeg

C:\tmp>dir /b
testtest.jpeg

拡張子だけ変更してみる

.jpeg を.jpg に変更する。

C:\tmp>ren *.jpeg *.jpg

C:\tmp>dir /b
testtest.jpg

「*」を使用することで、ファイルを複数まとめてリネームすることができる。

たとえば、ファイル名が test で始まるファイルだけ拡張子を変更するなどが可能。

この様な状態から。

C:\tmp>dir /b
e.jpg
testa.jpg
testb.jpg
testc.jpg
testd.jpg

まとめてリネーム。

C:\tmp>ren test*.jpg test*.jpeg

C:\tmp>dir /b
e.jpg
testa.jpeg
testb.jpeg
testc.jpeg
testd.jpeg

リネームするファイル名をフルパスで指定する

この方法を使うと、ディレクトリ移動せずリネームすることができる。

リネーム後のファイル名はパスを指定する必要が無い。

C:\tmp>ren C:\tmp\testtest.jpeg test.jpeg

C:\tmp>dir /b
test.jpeg

リネーム後のファイル名がすでに存在する場合

C:\tmp>dir /b
e.jpeg
testa.jpeg
testb.jpeg
testc.jpeg
testd.jpeg

エラーが発生する。

C:\tmp>ren e.jpeg testa.jpeg
重複するファイル名が存在するか、またはファイルが
見つかりませんでした。

リネームによって、ファイルを上書きしてしまうことはなさそうだ。

ファイルのプリフィックスだけを変えようとした場合

リネーム後の文字数分だけしか変わらない。。。

C:\tmp>dir /b
e.jpeg
testa.jpeg
testb.jpeg
testc.jpeg
testd.jpeg

test を tst に変えようとしたが、結果は。。。

C:\tmp>ren test* tst*

リネーム後の文字数分だけ変わった。

C:\tmp>dir/b
e.jpeg
tstta.jpeg
tsttb.jpeg
tsttc.jpeg
tsttd.jpeg