久しぶりに有意義なバッチファイルが作れたかも。ちゃんとできて何日かの苦労がやっと報われた感じです。こんな単純な内容なのに・・・。バッチの作業内容はタイトルの通りです。

撮った写真をリネームして連番管理してる人って少なからずいると思うのですが、いざリネームする際に最終番号って何だっけ?ってなると思うんですよね。自分は指定フォルダで一々「P*.*」って検索、ソートして最終番号確認なんてしてました。しかも、F5キーを何回か押さないと出力結果が最新にならないという。

そんな手間が如何せんわずらわしかったのでネットでいろいろ調べ、あれこれカスタマイズして作りました。手順はだいたい3段階。
①指定フォルダ以下の全サブフォルダの絶対パスをリスト出力
②フォルダリストを読み込み、各フォルダ毎にdirを打ってファイル名一覧をリスト出力
③ファイルリストを読み込み、ソートして最終的なファイル名一覧のリストを作成


■ソース(filelist.bat)■
@echo off
set TARGET_DIR=C:\写真フォルダ
echo %TARGET_DIR% 以下のファイルP*.*の一覧を取得し、ソート後にリストに出力します
pause

pushd %0\..
dir /ad /b /s "%TARGET_DIR%" > dir.txt
del filelist.txt
for /F "delims=" %%i in ( dir.txt ) do (
dir /a-d /b "%%i\P*.*" >> sortmaefilelist.txt
)
sort /o filelist.txt sortmaefilelist.txt
del dir.txt
del sortmaefilelist.txt
exit


■結果(filelist.txt)■
P6000101.JPG
P6000102.JPG
P6000103.JPG
  (中略)
P6110209.JPG
P6110210.JPG
P6110241.JPG
P6110242.JPG