ファイル名に大小文字が混ざったJPEGファイルを全て小文字のファイル名に変更したいというニーズあり。単純に大文字を小文字にするだけ。例えばTestImage0001.jpgだったらtestimage001.jpgにする。だけど、ファイルが数百個というオーダーで大量にあるので手作業でやってるわけにはいかない、というわけでバッチファイルを使う。
バッチファイルで大文字・小文字を変換する
以下の記述により、%STRに含まれる文字列中の’A’を’a’に変換できる。
1 |
SET STR=%STR:A=a% |
アルファベット25文字全部に関してこの処理を行えば大文字を全て小文字にできるけど、バッチファイルに25行の記述を書くのは芸が無いのでループを使おう。
1 2 |
FOR %%I IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) ^ DO CALL SET STR=%%STR:%%I=%%I%% |
以下が参考サイト。
バッチファイルで変数の大文字・小文字を変換する。 – 片っ端から忘れていけばいいじゃない。
http://0xc000013a.blog96.fc2.com/blog-entry-210.html
バッチファイルで大文字、小文字に変換する。: Windows Script Programming
http://scripting.cocolog-nifty.com/blog/2010/04/post-426e.html
BATファイルで文字列の切り出し
http://www.upken.jp/kb/kZwpzAqblKfZDjtMXuWuwioeExKNdE.html
この仕組みを使ってファイル名を大文字から小文字に変換するバッチファイルを書く。
1 2 3 4 5 6 7 8 9 |
@ECHO OFF REM MKLOWER.BAT SET FILE=%1 SET STR=%1 FOR %%I IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) ^ DO CALL SET STR=%%STR:%%I=%%I%% REN %FILE% %STR% |
ディレクトリ中のファイルをスキャンして一括で処理する
次はカレントディレクトリ中の全JPEGファイルをスキャンして、上で作成したバッチファイルを使ってファイル名を小文字にするためのバッチファイルを作成する。
1 2 3 |
@ECHO OFF REM SCANALL.BAT FOR %%A IN (*.jpg) DO CALL MKLOWER.BAT %%a |
バッチファイルも知れば意外にいろんなことができる。