我正在尝试(最终)修改一批文件,但是由于在尝试运行批处理命令之前修改单个文件时陷入了基础。
如果有人可以帮助我解决输入的命令,那就太好了。我敢肯定这很简单。
非常感谢您可以提供的任何帮助!
以下是图像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)
答案 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
请注意,如果文件名采用任何其他格式,则需要使用其他命令。