renomeação em massa de conjuntos de arquivos de imagem

renomeação em massa de conjuntos de arquivos de imagem

Usamos uma configuração de imagem de insetos de 6 câmeras descrita aqui:https://osf.io/s2p73/

Parte do nosso fluxo de trabalho envolve renomear os arquivos de imagem para que possam ser importados para nosso banco de dados. Atualmente, fazemos isso por meio de várias etapas de "renomear par" no Utilitário de renomeação em massa e estamos procurando um único arquivo em lote do DOS que simplifique o processo. As imagens começam e ficam em duas pastas com nomes iniciais -> finais conforme abaixo. Cada dia há até 1.000 imagens na pasta 1 e as 5.000 imagens correspondentes na pasta 2 a serem processadas.

O primeiro número indica a amostra (0001/2/3/4/5 etc). O número em negrito abaixo é o número de catálogo exclusivo que precisa ser transferido para as outras 5 imagens durante a renomeação e os dois últimos números após o número de catálogo podem ser diferentes entre conjuntos de imagens.

Pasta 1: "Renomeada"

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

Pasta 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

o próximo conjunto de imagens seria 0002_etc e teria um diferenteCatálogo númeroa ser transferido. Qualquer ajuda seria apreciada!

Responder1

  • Iterar arquivos na Pasta1 com um padrão correspondente
  • divida os nomes dos arquivos base ( %%F) em -e _em partes ( %%A..%%E)
  • use %%C..%%Epara renomear o arquivo Alice1
  • use %%Apara renomear o outro de acordo com seu esquema

Com uma árvore inicial de pastas/arquivos de teste no meu 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 arquivo em lote:

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

produz 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

informação relacionada