解决 "no writeable tags set" 错误

Troubleshooting "no writeable tags set" error

我正在尝试(最终)修改一批文件,但在 运行 批处理命令之前尝试修改单个文件时陷入了基础。

如果有人可以帮我解决我输入的命令问题,那就太好了。我敢肯定这很简单。

非常感谢您提供的任何帮助!

这是简化的图像 exif 数据:

-ExifToolVersion=10.10

-FileName=2018_11_13_1.jpeg

-Directory=.

-FileSize=2.8 MB

-FileModifyDate=2019:07:12 15:40:38-07:00

-FileAccessDate=2019:07:12 15:40:38-07:00

-FileInodeChangeDate=2019:07:23 10:38:02-07:00

-FilePermissions=rw-rw-r--

-FileType=JPEG

-FileTypeExtension=jpg

-MIMEType=image/jpeg

[...]

-ModifyDate=2018:11:13 12:00:53

[...]

-DateTimeOriginal=2018:11:13 12:00:53

-CreateDate=2018:11:13 12:00:53

我当前的输入是:exiftool "-FileModifyDate<$filename00000" ./2018_11_13_1.jpeg

错误信息是:

Warning: No writable tags set from 2018_11_13_1.jpeg

0 image files updated

1 image files unchanged

当然,exif 数据是不变的。

我已经确认我可以为这个标签写入一个值,所以从文件名中提取肯定有问题。

(接

这里的问题是您正试图从名为 filename00000 的标签写入。如果查看另一个 post 中的示例,您会看到 Filename 之后有一个 space。这将它分开,以便 exiftool 知道哪个是标签名称,哪个是其他数据。

不过这里可能还有一个问题。您的文件名有一个额外的数字,不是日期。当 exiftool 尝试从文件名写入时间戳时,它将以“2018:11:13 10:00:00”的值结束,如果最后一位数字达到值 3 或更多,导致时间戳为“2018:11:13 30:00:00”。

我建议使用 exiftool 的 Advanced Formatting Feature(一种可以在命令中使用 perl 代码的奇特方式)去除多余的数据。像
exiftool "-FileModifyDate<${filename;s/^(.*\d{4}_\d\d_\d\d).*//} 000000" ./2018_11_13_1.jpeg

但请注意,如果文件名是任何其他格式,则需要不同的命令。