我們使用此處描述的 6 攝影機昆蟲成像設定:https://osf.io/s2p73/
我們工作流程的一部分涉及重命名圖像文件,以便將它們導入到我們的資料庫中。目前,我們透過批量重命名實用程式中的多個「重新命名對」步驟來完成此操作,並且正在尋找可以簡化該過程的單一 DOS 批次檔。映像開始並保留在兩個資料夾中,初始名稱 --> 最終名稱如下。每天,資料夾 1 中最多有 1000 張影像,資料夾 2 中最多有 5000 張影像需要處理。
第一個數字表示樣本(0001/2/3/4/5 等)。下面的粗體數字是唯一的目錄號,需要在重新命名期間轉移到其他 5 個影像,並且目錄號後的最後兩個數字在影像集之間可能不同。
資料夾 1:“已重新命名”
0001_ALICE1-012345678_887856_162658.jpg --> 012345678_887856_162658.jpg
資料夾 2:“附加”
0001_ALICE2.jpg -->012345678_橫向.jpg
0001_ALICE3.jpg -->012345678_additional_1.jpg
0001_ALICE4.jpg -->012345678_additional_2.jpg
0001_ALICE5.jpg -->012345678_additional_3.jpg
0001_ALICE6.jpg -->012345678_additional_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