Использование exiftool для записи в имени файла CreateDate или FileModifyDate, независимо от того, что существует - PullRequest
0 голосов
/ 11 июля 2020

Использование exiftool для записи в имя файла CreateDate или FileModifyDate, независимо от того, что существует.

В чем проблема: -Если CreateDate не существует, происходит ошибка и имя файла не изменяется в соответствии с датой создания.

"Warning: No writable tags set from DSC_0680a.JPG"

Как я могу указать exiftool написать либо CreateDate, либо FileModifyDate - все, что существует в информации exif?

В настоящее время я использую следующую команду:

for pic in DSC*.*; do exiftool "-FileName<CreateDate" -d ${pic//.*}_%Y%m%d_%H%M%S.jpg" "$pic"; done;

Это тоже не работает:

exiftool "-FileName<CreateDate" -d "DSC_0680a_%Y%m%d_%H%M%S.jpg" DSC_0680a.JPG  || exiftool "-FileName<FileModifyDate" -d "DSC_0680a_%Y%m%d_%H%M%S.jpg" DSC_0680a.JPG 

1 Ответ

0 голосов
/ 11 июля 2020

Я попробовал эту команду с оператором linux «&&», «что означает, что что бы ни случилось с первой командой, выполнить и вторую тоже», и она сработала (?).

  • Имя файла, которое было изменено первой командой,
  • , оно не изменяется снова из 2-й команды, потому что,
  • оно сохраняет имя файла, переданное из первой команды,
  • и его больше нет, потому что он изменился.

Моя команда exiftool для изменения / переименования имени файла в соответствии с CreateDate ИЛИ FileModifyDate, который существует в тегах информации об изображении.

  for pic in DSC*.*;        do exiftool "-FileName<CreateDate" -d  "${pic//.*}_%Y%m%d_%H%M%S.jpg" "$pic"   &&   exiftool "-FileName<FileModifyDate" -d  "${pic//.*}_%Y%m%d_%H%M%S.jpg" "$pic"   ; done;
...