Uso ExifTool para renombrar por lotes todas mis imágenes usando los siguientes dos comandos:
"-FileName<${Exif:Model}-(%%f).%%e"
-d %%Y%%m%%d-%%H%%M%%S-%%%%f.%%%%e "-FileName<DateTimeOriginal"
Esto me da nombres de archivo como:
20110711-144637-DMC-FZ28-(P1020103).JPG
y
20110711-145144-iPhone 4-(IMG_1004).JPG
Me han enviado algunas fotos tomadas con un Samsung S860 que tiene una etiqueta de Modelo de<KENOX S860 / Samsung S860>
No estoy seguro de si es ExifTool (v8.60) en sí o el shell de comandos de Windows (7 de 64 bits) el que lo está haciendo, pero el primer comando lo trata /
como un cambio de directorio y da un error al intentar ejecutar :
Warning: Error creating directory for '<KENOX S860 / Samsung S860>-(SDC12529).JPG' - D:/Users/xxx/Desktop/ExifProcess/SDC12529.JPG
Error creating directory <KENOX S860
¿Hay alguna forma de forzar a ExifTool a escapar del carácter de barra diagonal?
He probado las opciones -ex
y que codifican el y pero no el .-E
<
>
/
¿Hay alguna forma de obligar a ExifTool a que no lo trate /
como parte de la ruta?
A continuación se muestra el archivo completo process.bat
que uso:
@Echo Off
MD D:\Users\xxx\Desktop\ExifProcess
COPY D:\Users\xxx\Pictures\Import\*.jpg D:\Users\xxx\Desktop\ExifProcess
"P:\Program Files (x86)\ExifTool\exiftool.exe" "-FileName<${Exif:Model}-(%%f).%%e" D:\Users\xxx\Desktop\ExifProcess\*.jpg
"P:\Program Files (x86)\ExifTool\exiftool.exe" -d %%Y%%m%%d-%%H%%M%%S-%%%%f.%%%%e "-FileName<DateTimeOriginal" D:\Users\xxx\Desktop\ExifProcess\*.jpg
Pause
Aunque esto se ha preguntado hace algún tiempo, pero dado que ninguna respuesta está marcada como Respuesta, ofrezco esto.
Tal vez la solución sea usar el punto y coma detrás del modelo para eliminar los caracteres no válidos > modelo;
exiftool '-filename<%f_${model;}.%e' dir
Cambie el nombre de todos los archivos en dir agregando el nombre del modelo de la cámara al nombre del archivo. El punto y coma después del nombre de la etiqueta dentro de las llaves hace que los caracteres que no son válidos en los nombres de archivo de Windows se eliminen del valor de la etiqueta (consulte la "Función de formato avanzado" para obtener una explicación).
Fuente: documentación de ExifTool y esta pregunta
Usando exiftool, la respuesta es crear una etiqueta definida por el usuario basada en EXIF:Model que filtra los caracteres ofensivos. Esta pregunta se hace y responde en el foro de ExifTool:
http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,2961
He estado usando jhead
para esto desde antes de conocer esta característica de ExifTool, y lo que hago es simplemente usar un script de envoltura para
Esto es un poco torpe, pero bueno, los scripts de shell son para los errores en primer lugar, ¿verdad? Y tiene la ventaja de tratar con otros nombres de modelos raros como la serie "*ist" terriblemente etiquetada de Pentax. Y ya está utilizando un script por lotes. Solo pon un poco más de inteligencia en ese nivel.
Prueba esto:
exiftool '-FileName<${CreateDate}_${Exif:Model}.jpg' -d %Y%m%d_%H%M%S-%%2c *
o esto
exiftool '-FileName<${CreateDate}_${Exif:Model}_${filename}' -d %Y%m%d_%H%M%S *
Hasta ahora, la única respuesta que he encontrado es agregar
-overwrite_original_in_place -preserve "-Model=Samsung S860"
como la primera acción de ExifTool, pero esto obviamente cambia el archivo en sí, en lugar de solo el nombre del archivo.
Jari Keinänen
Exif:Model
a un archivo de texto (2) recorra el archivo de texto reemplazando/
como por ejemplo-
(3.1) recorra la carpeta de fotos alfabéticamente nuevamente (3.2) cambie el nombre de los archivos según el archivo de texto modificadomattdm