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)なため、ファイル名の最後尾なら「追加」になるが、ファイル名の最初だと上書きになってしまう。そのためファイル名の長さによっては、保存できずにエラーになる。
Comments are closed.