解决“未设置可写标签”错误

时间:2019-07-23 17:42:28

标签: exiftool

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

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

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

以下是图像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

错误消息是:

  

警告:从2018_11_13_1.jpeg开始未设置可写标签

     

已更新0个图像文件

     

1个图像文件保持不变

当然,exif数据不变。

我已经确认可以在该标签中写入一个值,因此从文件名中提取数据肯定存在问题。

(接续How to compensate for incomplete date/time info in filename

1 个答案:

答案 0 :(得分:0)

这里的问题是,您正在尝试从名为filename00000的标记进行写入。如果您查看另一篇文章中的示例,您将看到Filename后面有一个空格。这使它与众不同,以便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).*/$1/} 000000" ./2018_11_13_1.jpeg

请注意,如果文件名采用任何其他格式,则需要使用其他命令。

相关问题