cambio de nombre masivo de conjuntos de archivos de imagen

cambio de nombre masivo de conjuntos de archivos de imagen

Utilizamos una configuración de imágenes de insectos de 6 cámaras que se describe aquí:https://osf.io/s2p73/

Parte de nuestro flujo de trabajo implica cambiar el nombre de los archivos de imagen para que puedan importarse a nuestra base de datos. Actualmente hacemos esto a través de múltiples pasos de "cambio de nombre de par" en Bulk Rename Utility y estamos buscando un único archivo por lotes de DOS que simplifique el proceso. Las imágenes comienzan y permanecen en dos carpetas con nombres iniciales --> finales como se muestra a continuación. Cada día hay hasta 1000 imágenes en la carpeta 1 y las 5000 imágenes correspondientes en la carpeta 2 para procesar.

El primer número indica el espécimen (0001/2/3/4/5, etc.). El número en negrita a continuación es el número de catálogo único que luego debe transferirse a las otras 5 imágenes durante el cambio de nombre y los dos últimos números después del número de catálogo pueden ser diferentes entre conjuntos de imágenes.

Carpeta 1: "renombrada"

0001_ALICE1-012345678_887856_162658.jpg --> 012345678_887856_162658.jpg

Carpeta 2: "Adicional"

0001_ALICE2.jpg -->012345678_lateral.jpg

0001_ALICE3.jpg -->012345678_adicional_1.jpg

0001_ALICE4.jpg -->012345678_adicional_2.jpg

0001_ALICE5.jpg -->012345678_adicional_3.jpg

0001_ALICE6.jpg -->012345678_adicional_4.jpg

el siguiente conjunto de imágenes sería 0002_etc y tendría un formato diferentecatalogar númeroser transferido. ¡Cualquier ayuda sería apreciada!

Respuesta1

  • Iterar archivos en la Carpeta1 con un patrón coincidente
  • dividir los nombres de los archivos base ( %%F) en -y _en partes ( %%A..%%E)
  • utilizar %%C..%%Epara cambiar el nombre del archivo Alice1
  • Úselo %%Apara cambiar el nombre del otro según su esquema

Con un árbol inicial de carpetas/archivos de prueba en mi 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

Este archivo por lotes:

:: 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"
)

arroja este resultado:

> 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

información relacionada