У меня есть библиотека из 25 000 фотографий (JPG). Я поддерживал библиотеку так, чтобы дата, сделанная в данных EXIF, отражала фактическую дату захвата, но я продолжаю находить исключения, когда я пропустил странную фотографию.
Поскольку все файлы называются «ГГГГ хххх» (где ГГГГ — это дата, а хххх — описание), я хочу попытаться найти все файлы, в которых год даты, взятой в данных EXIF, не соответствует первым 4 символам. имени файла.
Кто-нибудь знает способ сделать это? Я использую Windows 7 X64
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 файлов сбойное состояние» — здесь «сбой» означает, что они названы правильно , так как заданное «условие» не соответствует, что указывается !~
оператором. Измените это на, =~
если вы хотите, чтобы он печатал только те файлы, которые соответствуют . (Значок ^
указывает на начало файла — синтаксис такой же, как у регулярных выражений Perl .)
Часть -d '%Y'
устанавливает формат даты как год. Вы можете изменить это, чтобы оно соответствовало вашему соглашению об именах. Например, если ваши файлы должны начинаться с четырехзначного года, двухзначного месяца и двухзначного дня, разделенных дефисом, используйте -d '%Y-%m-%d'
.
Если у вас несколько папок, замените *.jpg
в конце строки на -r .
, что заставит ExifTool работать рекурсивно в каждой из них. (Предполагается .
, что вы хотите начать в текущем каталоге — измените .
путь на путь, если вы хотите запустить его в другом месте). Также в этом случае вы, вероятно, захотите -p '$Directory/$FileName
вместо одного FileName.
Если вы хотите покопаться в этом, ExifTool может даже условно переименовывать файлы, чтобы вы могли расширить описанное выше, чтобы исправить проблемные файлы, а не просто идентифицировать их.
Вы также можете использовать ExifTool, чтобы скопировать часть описания вашего имени файла во внутренние метаданные файла, возможно, установив его как заголовок XMP.
Для этого я использовал Advanced Renamer . Используйте метод «Заменить» и используйте теги изображения в качестве замещающего текста.
это
матдм
матдм
это
матдм