私たちは、ここで説明する 6 台のカメラによる昆虫撮影セットアップを使用します。https://osf.io/s2p73/
ワークフローの一部には、画像ファイルの名前を変更してデータベースにインポートできるようにする作業が含まれます。現在、Bulk Rename Utility で複数の「名前変更ペア」手順を使用してこれを実行しており、プロセスを簡素化する単一の DOS バッチ ファイルを探しています。画像は、次のように、初期名 --> 最終名で 2 つのフォルダーに保存されます。毎日、フォルダー 1 には最大 1000 枚の画像があり、フォルダー 2 には対応する 5000 枚の画像が処理されます。
最初の数字は標本を示します (0001/2/3/4/5 など)。下の太字の数字は一意のカタログ番号で、名前の変更時に他の 5 つの画像に転送する必要があります。カタログ番号の後の最後の 2 つの数字は画像セット間で異なる場合があります。
フォルダ 1: 「名前変更」
0001_アリス1-012345678_887856_162658.jpg --> 012345678_887856_162658.jpg
フォルダ 2:「追加」
0001_ALICE2.jpg -->012345678_横方向.jpg
0001_ALICE3.jpg -->012345678_追加_1.jpg
0001_ALICE4.jpg -->012345678_追加_2.jpg
0001_ALICE5.jpg -->012345678_追加_3.jpg
0001_ALICE6.jpg -->012345678_追加_4.jpg
次の画像セットは0002_etcとなり、異なるカタログ 番号転送されます。ご協力いただければ幸いです。
答え1
- Folder1内の一致するパターンを持つファイルを反復処理する
- ベースファイル名(
%%F
)-
を_
部分(%%A..%%E
)に分割します。 %%C..%%E
Alice1ファイルの名前を変更するために使用する%%A
スキームに従って他の名前を変更するために使用します
Ramdisk A 上のテスト フォルダー/ファイルの初期ツリー:
> tree a:\ /f
A:\
├───Additional
│ 0001_ALICE2.jpg
│ 0001_ALICE3.jpg
│ 0001_ALICE4.jpg
│ 0001_ALICE5.jpg
│ 0001_ALICE6.jpg
│
└───Renamed
0001_ALICE1-012345678_887856_162658.jpg
このバッチファイル:
:: Q:\Test\2019\03\30\SU_1419303.cmd
@Echo off
set "Folder1=A:\Renamed"
set "Folder2=A:\Additional"
For /f "delims=" %%F in ('
Dir /B/S/A-D "%Folder1%\????_Alice?-*_*_*.jpg
') Do For /F "tokens=1-5 delims=-_" %%A in ("%%~nF") DO (
Echo %%~nxF
Echo %%A %%B %%C %%D %%E
Ren "%%~fF" "%%C_%%D_%%E%%~xF"
Ren "%Folder2%\%%A_ALICE2.jpg" "%%C_lateral.jpg"
Ren "%Folder2%\%%A_ALICE3.jpg" "%%C_additional_1.jpg"
Ren "%Folder2%\%%A_ALICE4.jpg" "%%C_additional_2.jpg"
Ren "%Folder2%\%%A_ALICE5.jpg" "%%C_additional_3.jpg"
Ren "%Folder2%\%%A_ALICE6.jpg" "%%C_additional_4.jpg"
)
この結果になります:
> Q:\Test\2019\03\30\SU_1419303.cmd
0001_ALICE1-012345678_887856_162658.jpg
0001 ALICE1 012345678 887856 162658
> tree a:\ /f
A:\
├───Additional
│ 012345678_additional_1.jpg
│ 012345678_additional_2.jpg
│ 012345678_additional_3.jpg
│ 012345678_additional_4.jpg
│ 012345678_lateral.jpg
│
└───Renamed
012345678_887856_162658.jpg