我正在尝试(最终)修改一批文件,但在运行批处理命令之前尝试修改单个文件时陷入了基础知识。
如果有人可以帮助我解决我正在输入的命令,那就太棒了。我相信这是非常简单的事情。
非常感谢您能提供的任何帮助!
以下是缩写图像exif数据:
-ExifToolVersion=10.10
-文件名=2018_11_13_1.jpeg
-目录=。
-文件大小=2.8 MB
-文件修改日期=2019:07:12 15:40:38-07:00
-文件访问日期=2019:07:12 15:40:38-07:00
-文件InodeChangeDate=2019:07:23 10:38:02-07:00
-FilePermissions=rw-rw-r--
-文件类型=JPEG
-文件类型扩展名=jpg
-MIMEType=image/jpeg
[...]
-修改日期=2018:11:13 12:00:53
[...]
-日期时间原始=2018:11:13 12:00:53
-创建日期=2018:11:13 12:00:53
我目前的输入是:exiftool "-FileModifyDate<$filename00000" ./2018_11_13_1.jpeg
错误消息是:
警告:从 2018_11_13_1 开始未设置可写标记.jpeg
更新了 0 个图像文件
1 个图像文件未更改
当然,exif数据保持不变。
我已经确认我可以向这个标签写入一个值,所以从文件名中提取肯定有问题。
(续自如何补偿文件名中不完整的日期/时间信息)
这里的问题是您正在尝试从名为filename00000
的标签写入。 如果您检查另一篇文章中的示例,您会发现Filename
后面有一个空格。 这使它与众不同,以便exiftool知道哪个是标签名称,哪个是其他数据。
不过,这里可能还有一个额外的问题。 您的文件名有一个额外的数字,不是日期。 当exiftool尝试从文件名写入时间戳时,它最终将以"2018:11:13 10:00:00"结束,如果最后一个数字达到3或更大的值,这可能会变得特别成问题,导致时间戳为"2018:11:13 30:00:00"。
我建议使用 exiftool 的高级格式化功能(一种说法,您可以在命令中使用 perl 代码的奇特方式)来去除多余的数据。 类似exiftool "-FileModifyDate<${filename;s/^(.*d{4}_dd_dd).*/$1/} 000000" ./2018_11_13_1.jpeg
但请注意,如果文件名采用任何其他格式,则需要不同的命令。