【问题标题】:EXIFTOOL - Set datetime from filenameEXIFTOOL - 从文件名设置日期时间
【发布时间】:2017-05-16 13:24:48
【问题描述】:

我有许多以日期格式命名的照片,但 EXIF 日期不匹配。

例如2016-12-16_20-20-29.jpg

通过EXIFTOOL 运行它们,我几乎可以覆盖日期,但它与确切的日期格式不匹配。

exiftool "-datetimeoriginal<filename" ./

这会将日期设置为正确的日历日,但会忽略时间。

exiftool "-datetimeoriginal<filename" -d "%Y-%M-%D_%H-%M-%S.%%e" ./

我相信-d 参数设置了数据格式,但这会返回Warning: Error parsing time in ExifIFD:DateTimeOriginal (PrintConvInv) 的错误

这是正确的使用方法吗?

【问题讨论】:

    标签: exif exiftool


    【解决方案1】:

    您的第一个命令应该可以正常工作。来自Exiftool FAQ 5:
    “ExifTool 在写入时对输入日期/时间值的实际格式非常灵活,除非使用 -n 选项,否则它将尝试将任何值重新格式化为标准格式。可以使用任何分隔符(或者实际上根本没有). value 中的前 4 个连续数字被解释为年份,接下来的 2 个数字是月份,依此类推。[年份必须是 4 个数字。其他字段应为 2 个数字,但为单个数字如果后续字符是非数字,则允许。] "

    该段后面给出的示例与您的第一个命令几乎相同。

    此类操作不需要-d 选项。

    示例输出

    C:\>exiftool -datetimeoriginal "X:\!temp\2016-12-16_20-20-29.jpg"
    
    C:\>exiftool "-datetimeoriginal<filename" "X:\!temp\2016-12-16_20-20-29.jpg"
        1 image files updated
    
    C:\>exiftool -datetimeoriginal "X:\!temp\2016-12-16_20-20-29.jpg"
    Date/Time Original              : 2016:12:16 20:20:29
    

    【讨论】:

    • 你是对的!它不起作用,因为我之前的尝试损坏了 exif 数据,这就是错误响应。
    • 但由于某种原因,exiftool 完全忽略日期/时间标签(如“MediaCreateDate”和“TrackCreateDate”)的-d 参数。我(不是?)希望意识到 EXIF 标签中的“日期”表示它是一个日期太愚蠢了。
    • @Michael 你有示例命令吗?也许您可以链接一个示例文件?我在这里用exiftool -TrackCreateDate -MediaCreateDate -d "%Y" 对一些mp4 文件进行了测试,它可以正常工作,除非时间戳为0000:00:00 00:00:00。
    • @StarGeek 啊...是的,我尝试过的所有文件都返回了你给出的全零示例。
    【解决方案2】:

    跟进 StarGeek 的好回答。

    事实证明我的 exif 数据已损坏,这就是该命令未成功的原因。

    为了修复它,我首先清除了数据

    exiftool -all= −overwrite_original ./
    

    然后我能够再次运行该命令以根据文件名设置日期。一个额外的好处是我发现了属性-alldates,它更新了元数据中的每个日期,不包括文件写入/修改日期。

    exiftool "-alldates<filename" −overwrite_original ./
    

    .n.b −overwrite_original 阻止创建备份文件

    【讨论】:

    • 一些附加信息。与其清除文件中的所有元数据,不如尝试使用以下命令尽可能多地恢复:exiftool -all= -tagsfromfile @ -all:all -unsafe 此外,-alldates 仅影响三个最常见的 EXIF 日期/时间标签:DateTimeOriginal、@987654328 @ 和 ModifyDate。要更改所有日期时间标签,请使用-Time:all 您也可以使用−overwrite_original 来避免备份文件。更安全一些,因为它先复制,然后替换原始文件,而不是直接覆盖原始文件。
    猜你喜欢
    • 2019-05-20
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多