ExifTool - это кроссплатформенный инструмент, который будет работать из командной строки Windows. Он очень мощный, с синтаксисом на основе Perl, позволяющим сравнивать различные метаданные. В каталоге с файлами JPEG эта команда
выведет список всех файлов, в которых начало имени файла не соответствует году из значения EXIF, взятого из даты:
exiftool -d "%Y" -if "$FileName !~ /^$DateTimeOriginal/" -p "$FileName" *.jpg
Обратите внимание на двойные кавычки, поскольку вы работаете в Windows. На Mac или Linux используйте одинарные кавычки:
exiftool -d '%Y' -if '$FileName !~ /^$DateTimeOriginal/' -p '$FileName' *.jpg
Это также напечатает что-то вроде «1600 файлов сбой условия» - здесь, «сбой» означает, что они названы правильно , так как данное «условие» является не соответствия, что указано оператором !~
. Измените это на =~
, если вы хотите, чтобы он печатал только файлы, которые do совпадают. (^
указывает на начало файла - синтаксис регулярных выражений perl .)
Деталь -d '%Y'
устанавливает формат даты как год. Вы можете изменить это, чтобы соответствовать вашему соглашению об именах. Например, если ваши файлы должны начинаться с четырехзначного года, двухзначного месяца и двухзначного дня, разделенных тире, введите -d '%Y-%m-%d'
.
Если у вас несколько папок, замените *.jpg
в конце строки на -r .
, что заставит ExifTool рекурсивно запускаться в каждой. (.
предполагает, что вы хотите начать с текущего каталога - измените .
на путь, если вы хотите запустить его где-нибудь еще). Также в этом случае вы, вероятно, захотите -p '$Directory/$FileName
вместо одного только FileName.
Если вы хотите углубиться в это, ExifTool может даже условно переименовать файлы, чтобы вы могли расширить вышеприведенное, чтобы исправить ваши проблемные файлы, а не просто идентифицировать их.
Вы также можете использовать ExifTool, чтобы скопировать часть описания вашего имени файла во внутренние метаданные файла, возможно, установив его в качестве заголовка XMP.