Использование ExifTool для массовых операций

557
voronoi

Я хотел бы получить помощь, пожалуйста, с ExifTool для следующих операций:

  1. У меня есть тысячи фотографий, разбросанных по десяткам подпапок. Все подпапки вложены в одну родительскую папку. Как мне сказать ExifTool применить изменения ко всем файлам?

  2. Что я хотел бы сделать конкретно, это «вырезать» каждое значение в теге EXIF ​​«Авторское право» и «вставить» его в тег EXIF ​​«UserComment». Я хотел бы сделать это для всех фотографий одновременно, и каждая фотография, конечно, должна сохранять свое значение (только теперь под другим тегом). Опять же, не все фотографии имеют значение в поле «Авторское право», я предполагаю, что они будут игнорироваться программным обеспечением.

  3. Наконец, я бы ExifTool стереть все возможные метаданные, кроме вновь созданных значений под тегом «Комментарии».

Помощь и рекомендации будут с благодарностью.

Спасибо!

0

1 ответ на вопрос

1
StarGeek

Попробуйте эту команду:
exiftool -r -all:all= -tagsfromfile @ "-UserComment<Copyright" <DIR>

-rЭта опция для возврата в подкаталоги
-all:all=удалит все
-TagsFromFile @теги копий метаданных, перечисленные после этой опции, из текущего файла обратно в файл. "-UserComment<Copyright"После TagsFromFile он скопирует, Copyrightно перенаправит его в UserCommentтег.

Убедитесь, что и проверьте это сначала конечно. Эта команда оставит файлы резервных копий с _originalдобавленным расширением. Вы можете предотвратить это, убедившись, что команда верна, добавив -overwrite_original.

Спасибо @StarGeek! Несколько вопросов: 1. Запись `-all: al =` before `-tagsfromfile` не приведет к потере всех метаданных? (тогда ExifTool не будет иметь никаких тегов для копирования). 2. Я думаю, ``где я вставляю полный каталог родительской папки? voronoi 6 лет назад 0
Он по-прежнему будет иметь все доступные данные, поскольку он выясняет, как обрабатывать команды. Он не мгновенно отбрасывает все данные, когда получает параметр `-all: all =`. Он просто не записывает все данные, когда переписывает файл. Да, ``- это путь к вашей целевой директории, будь то полный путь, относительный путь или просто точка` .` для текущей директории. StarGeek 6 лет назад 1
Большое спасибо @StarGeek, ваша команда прекрасно сработала (я изменил метки <> вокруг DIR на кавычки). В конце процесса ExifTool сказал, что: `17 файлов изображений без изменений`` 1 файлов не были обновлены из-за ошибок` Как я могу проверить, какие именно файлы были оставлены без изменений или не были обновлены (и из-за какой именно ошибки )? Спасибо! voronoi 6 лет назад 0
Файл с ошибкой должен был содержать объяснение в выходных данных. Неизмененные файлы - это файлы, в которых уже удалены все данные и нет изменений в UserComment, или нет данных для удаления, и они не принимают метаданные EXIF, как файл BMAP. Попробуйте перенаправить вывод в файл, если в командной строке больше, чем вы можете прочитать. Добавьте `-progress` или` -v2`, чтобы получить более полную информацию. StarGeek 6 лет назад 0
Привет @StarGeek, я добавил две предложенные вами команды. Я все еще не мог понять, какие файлы не были обработаны, в любом случае. В обоих случаях я скопировал весь вывод в Notepad ++ 1. Добавление `-progress` после` -r`, похоже, не имеет большого значения с точки зрения вывода по сравнению с вашей исходной командой. 2. `-v2` после` -r` приводит к тысячам дополнительных текстовых строк, и, не зная, что конкретно нужно ввести в поле поиска, невозможно найти то, что я ищу. Есть ли верный способ найти какие проблемные файлы? Существует ли повторяющийся синтаксис в случае ошибок? voronoi 6 лет назад 0
С выводом `-v2` вы должны найти строку` Ничего не изменилось` и затем имя файла, который не был изменен. Файл, который не был обновлен из-за ошибки, должен иметь какой-либо текст ошибки или предупреждения даже без опции `-v2`. Я думаю, что он даже будет использовать слова ошибки или предупреждения. StarGeek 6 лет назад 0
Дальнейшее уточнение, файлы с ошибками напечатают строку, которая начинается с `Warning:` или `Error:`. Я думаю, что это напечатано в `stderr`. Файлы без изменений не будут перечислены нормально, но с добавлением опций `-v2` или` -progress` exiftool напечатает строку, которая гласит: «Ничего не изменилось в», StarGeek 6 лет назад 0
Большое спасибо за вклад! Поиск `warning` после выполнения команды с` -v2` приводит к 27 совпадениям (`error` и` stderr` не дают никаких полезных результатов). Это не соответствует общим 14 «проблемным» файлам (13 без изменений, 1 не был обновлен из-за ошибки). Как ни странно, проверка самих файлов с предупреждением рядом с ними показывает, что они были обновлены, как и ожидалось. voronoi 6 лет назад 0

Похожие вопросы