批量给图片添加 EXIF 信息(标记、备注、作者,作者字段)

简介

用 PowerShell 5 写个一键脚本,批量给 D:\x\111 目录下的所有图片添加 EXIF 信息(标记、备注、作者,作者字段写 www.qq.com)。

PowerShell 5 原生不直接支持写 EXIF 信息,我们通常用第三方工具配合,比如 ExifTool(最强大的元数据编辑工具,免费且支持绝大多数格式),来实现批量修改。

准备工作

下载 ExifTool:https://exiftool.org

Windows 版下载的是一个可执行文件 exiftool(-k).exe,你可以重命名 exiftool.exe 放到 C:\Windows 或你脚本同目录,方便调用。

例如:我的路径是 C:\Users\Administrator\Downloads\exiftool-13.42_64

你可以试试下面命令,看能不能执行:

& "C:\Users\Administrator\Downloads\exiftool-13.42_64\exiftool.exe" -ver

如果能显示版本号,说明路径没问题。

复制粘贴以下脚本代码到桌面,并保存为add_exif.ps1

脚本

# 设置 exiftool 路径,确认路径正确且文件存在

$exiftoolPath = "C:\Users\Administrator\Downloads\exiftool-13.42_64\exiftool.exe"

if (-not (Test-Path $exiftoolPath)) {

    Write-Error "未找到 exiftool.exe,路径错误:$exiftoolPath"

    exit 1

}

# 设置目标文件夹,确认存在

$folderPath = "D:\x\111"

if (-not (Test-Path $folderPath)) {

    Write-Error "目标文件夹不存在:$folderPath"

    exit 1

}

# 设置 EXIF 信息

$author = "www.qq.de"

$comment = "备注"

$tag = "qq"

# 支持的图片格式

$extensions =

foreach ($ext in $extensions) {

    # 获取所有符合格式的文件,递归查找

    $files = Get-ChildItem -Path $folderPath -Recurse -Filter $ext -File

    foreach ($file in $files) {

        # 调用 exiftool 写入 EXIF 信息

        & "$exiftoolPath" `

            -overwrite_original `

            -Artist="$author" `

            -Comment="$comment" `

            -Keywords="$tag" `

            "$($file.FullName)"

        Write-Host "已处理:" $file.FullName

    }

}

Write-Host "全部完成!"

执行脚本:

cd $env:USERPROFILE\Desktop
Set-ExecutionPolicy Bypass -Scope Process -Force
.\add_exif.ps1