使用Automator& amp;将custo IPTC关键字添加到jpg exiftools

时间:2011-07-26 20:15:35

标签: shell exif automator

我已经搜索了我的 * ,但找不到任何对我有意义的内容。

我想在Finder中选择jpgs并使用上下文菜单中的services选项将关键字附加到图像。 我使用Automator来询问关键字并将其存储在变量中。

接下来就是使用带有exiftool的shell脚本来附加关键字。

问题是编写一个与这两个变量一起使用的shell脚本(其中一个是包含文件名的数组)

我找到了一个非常有趣的博客文章: http://coreygilmore.com/blog/2010/05/07/passing-multiple-automator-variables-to-a-shell-script/

但我发现Shell代码太混乱了:

for everyFile
exiftool IPTC:关键字+ =“$ MyKeywordsString”$ file

请帮帮我! 我想Applescript也可以,但我不知道怎么写它......

提前致谢!

@shellter: 它不起作用,这是我的终端输出:

Last login: Thu Jul 28 19:57:54 on ttys000
localhost:~ benjamin$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
localhost:~ benjamin$ export Keywords=testKeyword
localhost:~ benjamin$ echo $Keywords
testKeyword
localhost:~ benjamin$ /Users/benjamin/Desktop/myKeyWords.sh /Users/benjamin/Desktop/image.jpg /Users/benjamin/Desktop/image2.jpg 
/Users/benjamin/Desktop/myKeyWords.sh: line 1: $: command not found
File not found: Keywords=
======== /Users/benjamin/Desktop/image.jpg
ExifTool Version Number         : 8.61
File Name                       : image.jpg
Directory                       : /Users/benjamin/Desktop
File Size                       : 128 kB
File Modification Date/Time     : 2011:07:27 10:41:49+02:00
File Permissions                : rw-r--r--
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Current IPTC Digest             : c76c591fd016b068e1b44202c9f1996c
Keywords                        : MeinNeuerTag, MeinNeuerTag
Application Record Version      : 4
Comment                         : CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90.
XMP Toolkit                     : XMP Core 4.4.0
Image Width                     : 600
Image Height                    : 601
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 600x601
    1 image files read
    1 files could not be read

为什么将关键字视为文件? 我在哪里必须把脚本只输入“脚本参数参数”而不是路径?抱歉,当我输入“echo $ PATH”时,我对终端所回应的内容一无所知。也许你可以帮助我。

再次感谢你!非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以将fileNames视为一个数组,但从shell的角度来看,它可能更容易设想,它们只是一个列表。

你需要制作像

这样的剧本
$ cat myKeyWords.sh
#! /bin/bash -vx

for file in "${@}" ; do
  exiftool Keywords="${myKeyWord}" "${file}"
done

创建文件后,您需要创建该文件,以便系统具有运行该文件的权限。 做chmod 755 myKeyWords.sh。您需要将此脚本放在Automater工具知道的目录中,或者放在PATH中的目录中。请echo $PATH查看有哪些值。如果有一个名为/usr/local/bin,那么这可能是放置新脚本的最佳位置。

您必须参考博客文章,了解如何将自动关键字中的关键字值传递给您的shell脚本。如果你很幸运,那就可以了。

此脚本已启用shell调试模式(第一行为-vx)。您应该能够看到脚本中发生了什么,因为调试将显示脚本中每个(最多)步骤正在执行的内容。

我建议在使用Automator之前确保脚本自行运行。在终端窗口打开,并将其设置为:

export Keyword=xxxxx
myKeywords.sh file1 file2 file3 ...

当它完全按照您的需要工作时,您可以删除脚本第一行中的-vx

此脚本还假定您的系统上有/bin/bash可用,根据需要更改该值以运行可用的shell /bin/sh, /bin/ksh, /bin/zsh,您可能需要将路径/bin/更改为{ {1}}找到贝壳。

我真的不认为你想要用户关键字+ =“$ myKeywordsString”,因为每当脚本通过该任务时,这将增加关键字的值。您可以通过在调试模式下查看输出来确认。

我希望这会有所帮助。

P.S。因为您似乎是新用户,如果您得到的答案可以帮助您,请记住将其标记为已接受,并且/或者给它一个+(或 - )作为有用的答案。