Мы используем установку для получения изображений насекомых из 6 камер, описанную здесь:https://osf.io/s2p73/
Часть нашего рабочего процесса включает переименование файлов изображений, чтобы их можно было импортировать в нашу базу данных. В настоящее время мы делаем это с помощью нескольких шагов "переименования пар" в Bulk Rename Utility и ищем единый пакетный файл DOS, который упростил бы процесс. Изображения начинаются и остаются в двух папках с начальными --> конечными именами, как показано ниже. Каждый день в папке 1 обрабатывается до 1000 изображений и соответствующих 5000 изображений в папке 2.
Первая цифра указывает на образец (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_дополнительный_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