Tengo una biblioteca de unas 25.000 fotos (JPG). He estado manteniendo la biblioteca para que la fecha tomada en los datos EXIF refleje la fecha de captura real, pero sigo encontrando excepciones en las que me he perdido alguna foto.
Dado que todos los archivos se denominan "YYYY xxxx" (donde YYYY es la fecha de captura y xxxx es una descripción), quiero intentar ubicar todos los archivos en los que el año de la fecha de captura en los datos EXIF no coincida con los primeros 4 caracteres. del nombre del archivo.
¿Alguien sabe de una manera de hacer esto? Estoy ejecutando Windows 7 X64
ExifTool es una herramienta multiplataforma que funcionará desde la línea de comandos de Windows. Es muy poderoso, con una sintaxis basada en perl que permite la comparación de varios metadatos. En un directorio lleno de archivos JPEG, este comando imprimirá una lista de todos los archivos en los que el comienzo del nombre del archivo no coincida con el año del valor EXIF tomado en la fecha:
exiftool -d "%Y" -if "$FileName !~ /^$DateTimeOriginal/" -p "$FileName" *.jpg
Tenga en cuenta las comillas dobles ya que está en Windows. En Mac o Linux, use comillas simples:
exiftool -d '%Y' -if '$FileName !~ /^$DateTimeOriginal/' -p '$FileName' *.jpg
Esto también imprimirá algo así como "Condición fallida de 1600 archivos"; aquí, "fallido" significa que tienen el nombre correcto , ya que la "condición" dada no coincide, lo cual es indicado por el !~
operador. Cambie eso a =~
si desea que imprima solo los archivos que coinciden . (El ^
indica el comienzo del archivo; la sintaxis es la de las expresiones regulares de Perl ).
La parte -d '%Y'
establece que el formato de fecha sea solo el año. Puede cambiar eso para que coincida con su convención de nomenclatura. Por ejemplo, si se supone que sus archivos deben comenzar con un año de cuatro dígitos, un mes de dos dígitos y un día de dos dígitos, separados por un guión, use -d '%Y-%m-%d'
.
Si tiene varias carpetas, reemplace *.jpg
al final de la línea con -r .
, lo que hará que ExifTool se ejecute recursivamente en cada una. (Se .
supone que desea comenzar en el directorio actual; cambie el .
a un nombre de ruta si desea ejecutarlo en otro lugar). También en ese caso, probablemente desee -p '$Directory/$FileName
en lugar de solo FileName solo.
Si desea profundizar en él, ExifTool puede incluso cambiar el nombre de los archivos de forma condicional, por lo que podría ampliar lo anterior para solucionar sus archivos problemáticos, en lugar de simplemente identificarlos.
También puede usar ExifTool para copiar la parte de descripción de su nombre de archivo en los metadatos internos del archivo, tal vez estableciéndolo como el Título XMP.
He usado Advanced Renamer para hacer esto. Use el método Reemplazar y use las etiquetas de imagen como texto de reemplazo.
itm
mattdm
mattdm
itm
mattdm