EXIFTOOL - 从文件名设置日期时间
EXIFTOOL - Set datetime from filename
我有很多照片以日期格式命名,但 EXIF 日期不匹配。
例如2016-12-16_20-20-29.jpg
运行 他们到 EXIFTOOL
我几乎可以覆盖日期,但它与确切的日期格式不匹配。
exiftool "-datetimeoriginal<filename" ./
这会将日期设置为正确的日历日但会忽略时间。
exiftool "-datetimeoriginal<filename" -d "%Y-%M-%D_%H-%M-%S.%%e" ./
我相信 -d
参数设置了数据格式,但是这个 returns 是 Warning: Error parsing time in ExifIFD:DateTimeOriginal (PrintConvInv)
的错误
这是正确的使用方法吗?
您的第一个命令应该可以正常工作。来自 Exiftool FAQ 5:
"ExifTool is very flexible about the actual format of input date/time values when writing, and will attempt to reformat any values into the standard format unless the -n option is used. Any separators may be used (or in fact, none at all). The first 4 consecutive digits found in the value are interpreted as the year, then next 2 digits are the month, and so on. [The year must be 4 digits. Other fields are expected to be 2 digits, but a single digit is allowed if the subsequent character is a non-digit.] "
该段后面给出的示例与您的第一个命令几乎相同。
此类操作不需要 -d
选项。
示例输出
C:\>exiftool -datetimeoriginal "X:\!temp16-12-16_20-20-29.jpg"
C:\>exiftool "-datetimeoriginal<filename" "X:\!temp16-12-16_20-20-29.jpg"
1 image files updated
C:\>exiftool -datetimeoriginal "X:\!temp16-12-16_20-20-29.jpg"
Date/Time Original : 2016:12:16 20:20:29
跟进 StarGeek 的好答案。
事实证明我损坏了我的 exif 数据,这就是命令没有成功的原因。
为了修复它,我首先清除了数据
exiftool -all= −overwrite_original ./
然后我能够再次 运行 命令以根据文件名设置日期。一个额外的好处是我发现 属性 -alldates
它更新了元数据中的每个日期,不包括文件写入 / mod 日期。
exiftool "-alldates<filename" −overwrite_original ./
.n.b −overwrite_original
阻止创建备份文件
我有很多照片以日期格式命名,但 EXIF 日期不匹配。
例如2016-12-16_20-20-29.jpg
运行 他们到 EXIFTOOL
我几乎可以覆盖日期,但它与确切的日期格式不匹配。
exiftool "-datetimeoriginal<filename" ./
这会将日期设置为正确的日历日但会忽略时间。
exiftool "-datetimeoriginal<filename" -d "%Y-%M-%D_%H-%M-%S.%%e" ./
我相信 -d
参数设置了数据格式,但是这个 returns 是 Warning: Error parsing time in ExifIFD:DateTimeOriginal (PrintConvInv)
这是正确的使用方法吗?
您的第一个命令应该可以正常工作。来自 Exiftool FAQ 5:
"ExifTool is very flexible about the actual format of input date/time values when writing, and will attempt to reformat any values into the standard format unless the -n option is used. Any separators may be used (or in fact, none at all). The first 4 consecutive digits found in the value are interpreted as the year, then next 2 digits are the month, and so on. [The year must be 4 digits. Other fields are expected to be 2 digits, but a single digit is allowed if the subsequent character is a non-digit.] "
该段后面给出的示例与您的第一个命令几乎相同。
此类操作不需要 -d
选项。
示例输出
C:\>exiftool -datetimeoriginal "X:\!temp16-12-16_20-20-29.jpg"
C:\>exiftool "-datetimeoriginal<filename" "X:\!temp16-12-16_20-20-29.jpg"
1 image files updated
C:\>exiftool -datetimeoriginal "X:\!temp16-12-16_20-20-29.jpg"
Date/Time Original : 2016:12:16 20:20:29
跟进 StarGeek 的好答案。
事实证明我损坏了我的 exif 数据,这就是命令没有成功的原因。
为了修复它,我首先清除了数据
exiftool -all= −overwrite_original ./
然后我能够再次 运行 命令以根据文件名设置日期。一个额外的好处是我发现 属性 -alldates
它更新了元数据中的每个日期,不包括文件写入 / mod 日期。
exiftool "-alldates<filename" −overwrite_original ./
.n.b −overwrite_original
阻止创建备份文件