Windowsでファイル名一括変更2(削除、追加)

前回、コマンドプロンプトでファイル名を一括変更するTipsを紹介した。
システム修行ブログ» ブログアーカイブ » Windowsでファイル名一括変更

これは、%iを変数に取り、forでループ処理して、ファイルの前に文字を追加するコマンドだった。

逆に、文字を一括して削除したいとき、もしくはファイルの「後に」文字を追加したい場合がある。そんなとき、ファイル名の文字数が同じだったら、こういう方法もある。


001.jpg
002.jpg
003.jpg

「“image”を後ろに付けたい場合」

rename ???.jpg ???image.jpg

?は、文字一つ分を表すリテラル。これでファイル名が次のようになる。

001image.jpg
002image.jpg
003image.jpg

「やっぱり“image”を後ろに削除したい場合」

rename ???image.jpg ???.jpg

ひっくり返して実行すればOK。

ファイルの前に付けたい場合に、単純に image???.jpg としてもうまくいかない。
この理由はしばらく不明だったが、いくつか検証してみて分かった。

例えば、
FL010001.jpg
というようなファイル名で

rename ????????.jpg 08-09-????????.jpg

とした場合、08-09-FL010001.jpgではなく、08-09-01.jpgとなってしまう。
これは、この文字列挿入が「上書き追加」(viで言うとa)なため、ファイル名の最後尾なら「追加」になるが、ファイル名の最初だと上書きになってしまう。そのためファイル名の長さによっては、保存できずにエラーになる。

広告

About: adminuser


Leave a Reply

Your email address will not be published. Required fields are marked *