0

使用 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 
4

1 回答 1

0

我用 linux 运算符“&&”尝试了这个命令,“这意味着无论第一个命令发生什么,也执行第二个命令”,它起作用了(?)。

  • 第一个命令更改的文件名,
  • 它不会从第二个命令再次更改,因为,
  • 它保留从第一个命令传递的文件名,
  • 它不再存在,因为它改变了。

我的 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;
于 2020-07-11T19:27:41.727 回答