Массовое переименование наборов файлов изображений

Массовое переименование наборов файлов изображений

Мы используем установку для получения изображений насекомых из 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

Связанный контент