m0_71292685 2024-07-31 10:51 采纳率: 100%
浏览 15
已结题

想做个bat文件提取照片时间到txt里

之前自己做了个简单的,但是这组命令是提取文件的创建时间,手机忘电脑上拷照片的时候,有的创建时间会变,网上没有查到提前拍摄时间的命令代码。没专门学过计算机,都是用到的时候现查,大家有什么好办法吗

img

  • 写回答

2条回答 默认 最新

  • 爱学习的大牛123 2024-07-31 11:40
    关注

    以下是一个示例脚本:

    @echo off
    setlocal enabledelayedexpansion
    
    rem 设置输出文件名
    set "output_file=photo_times.txt"
    
    rem 清空输出文件(如果存在)
    echo. > %output_file%
    
    rem 遍历当前目录下的所有jpg和jpeg文件
    for %%F in (*.jpg *.jpeg) do (
        rem 使用exiftool提取照片的拍摄时间
        for /f "delims=" %%T in ('exiftool -s -s -s -DateTimeOriginal "%%F"') do (
            set "datetime=%%T"
            
            rem 如果没有拍摄时间,则使用文件修改时间
            if "!datetime!"=="" (
                for /f "tokens=1-5 delims=/ " %%a in ("%%~tF") do (
                    set "datetime=%%c:%%d:%%e"
                )
            )
            
            rem 将文件名和时间信息写入输出文件
            echo %%F: !datetime! >> %output_file%
        )
    )
    
    echo 完成! 时间信息已保存到 %output_file%
    pause
    

    使用说明:

    1. 这个脚本需要安装ExifTool工具。ExifTool是一个用于读取、写入和编辑图像元数据的强大工具。您可以从官网下载并安装: https://exiftool.org/

    2. 将此脚本保存为.bat文件(例如extract_photo_times.bat)。

    3. 将此bat文件放在包含照片的文件夹中。

    4. 双击运行bat文件。

    5. 脚本会遍历当前文件夹中的所有.jpg和.jpeg文件,提取它们的拍摄时间(如果可用),或者使用文件修改时间作为替代。

    6. 结果将保存在名为photo_times.txt的文本文件中,格式为"文件名: 日期时间"。

    注意事项:

    • 这个脚本默认使用照片的原始拍摄时间(DateTimeOriginal)。如果照片没有这个信息,它会退而使用文件的修改时间。
    • 如果您需要提取其他类型的图片文件(如png,gif等),可以在for循环中添加相应的文件扩展名。
    • 确保您的系统路径中包含exiftool,否则脚本可能无法正常工作。

    如果您需要进一步的修改或有其他要求,请随时告诉我。我很乐意帮您调整脚本以满足您的具体需求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月3日
  • 已采纳回答 8月26日
  • 创建了问题 7月31日