如何使用 exiftool 将元数据从源图像批量复制到目标图像?

How to batch copy metadata from source images to target images with exiftool?

图片位于 C:/photo 内的文件夹中。

我在其子文件夹和自身中有原始图像和压缩图像。

以下是图像组织方式的示例:

C:/photo/photo1.jpg
C:/photo/photo1_compressed.jpg
C:/photo/folder1/photo2.jpg
C:/photo/folder1/photo2_compressed.jpg
C:/photo/folder1/photo3.jpg
C:/photo/folder1/photo3_compressed.jpg
C:/photo/folder2/photo4.jpg
C:/photo/folder2/photo4_compressed.jpg
C:/photo/folder2/folder3/photo5.jpg
C:/photo/folder2/folder3/photo5_compressed.jpg

后缀为_compressed的图片为无后缀同名原图压缩版

我如何使用 exiftool 递归地将元数据从原始图像复制到其压缩副本?只复制一个标签或几个选定的标签怎么样?

你的命令是:
exiftool -if "$Filename=~/_compressed/i" -r -TagsFromFile %d%-.11f.%e -All:All C:\photo

此命令将处理 C:\photo 中的文件,检查以确保名称中包含 _compressed,并从文件末尾减去 11 个字符的相同名称复制所有标签文件的基本名称。

因为要递归,不能使用通配符只处理压缩​​文件(见Exiftool Common Mistake #2-r (-recurse) option).

如果您只想复制特定标签,您可以将 -All:All 替换为 -TAG1 -TAG2-TAGn,将 TAG# 替换为实际标签名字。

此命令不会复制某些标签,例如ICC_Profile。您可以通过在 -TagsFromFile 选项后添加 -ColorSpaceTags 来复制颜色相关标签。

此命令创建备份文件。添加 -overwrite_original 以禁止创建备份文件。如果此命令在 Unix/Mac 下 运行,请反转任何 double/single 引号以避免 bash 解释。