windowsコマンドでファイル名を変更(リネーム)する
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