exiftool防止重复iptc:keywords / xmp-dc:subject使用add + =

时间:2017-02-21 10:57:27

标签: batch-file xmp exiftool iptc

问题:

当我有一个jpg whith iptc:keywords = holliday并且我执行

  • exiftool myImage.jpg -IPTC:Keywords + = holliday -IPTC:Keywords + = ocean

图片有两个“holliday”标签

避免重复使用我目前使用

  • exiftool myImage.jpg -IPTC:Keywords- = holliday -IPTC:Keywords + = holliday -IPTC:Keywords- = ocean -IPTC:Keywords + = ocean

所以如果关键字在jpg中不存在,那么“ - =”无效。

但是这种方法的缺点是,即使没有必要,jpg也会被修改,因为关键字已经存在了。

是否有更高效的axiftool-api调用方式来添加只在必要时才会更改的关键字/主题?

背景

目前我正在为Android和PC之间的关键字/主题实现元数据同步。

android为每次更改生成一个msdos批处理脚本条目,我使用基于exiftool的bat 用于在PC端应用元数据更改的脚本

由于PC关键字更改可能来自不同的Android设备关键字必须添加/删除,无法完全设置。

2 个答案:

答案 0 :(得分:1)

a

如果关键字不存在,请添加。

已修改以适应评论

<span class="delete">
    <a href="edit-tags.php?action=delete&amp;taxonomy=books&amp;tag_ID=2841&amp;_wpnonce=b5a0a7a688" 
       class="delete-tag aria-button-if-js" 
       aria-label="Delete “Mathew”" 
       role="button">Delete</a> | 
</span>

答案 1 :(得分:0)

关于Linux bash 的一些研究:

SAFEARRAY

双引号在这里不起作用,所以这里有一种处理单引号的方法:

exiftool -if 'not $keywords =~ /holiday/' -Keywords+=holiday myImage.jpg ;
exiftool -if 'not $keywords =~ /ocean/' -Keywords+=ocean myImage.jpg ;

如果您的正则表达式必须不区分大小写:

exiftool -if 'not $Keywords =~ /harry'\''s/' -Keywords+='harry'\''s' myImage.jpg ;