Добавьте ключевые слова IPTC для обычного jpg с помощью Automator и exiftools - PullRequest
0 голосов
/ 27 июля 2011

Я обыскал свою *, но не смог найти ничего, что имело бы для меня смысл.

Я бы хотел выбрать jpgs в Finder и использовать опцию services в контекстном меню, чтобы прикрепить ключевое слово к изображениям. Я использую Automator, чтобы запросить ключевые слова и сохранить его в переменной.

Следующим шагом будет использование сценария оболочки с exiftool для прикрепления ключевого слова.

Проблема заключается в написании сценария оболочки, который работает с этими двумя переменными (одна из них, конечно же, представляет собой массив, содержащий имена файлов)

Я нашел одну очень интересную запись в блоге: http://coreygilmore.com/blog/2010/05/07/passing-multiple-automator-variables-to-a-shell-script/

но я нахожу код Shell слишком запутанным, чтобы сделать это:

для каждого файла
exiftool IPTC: Keywords + = "$ 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 Ответ

1 голос
/ 27 июля 2011

Вы можете думать о fileNames как о массиве, но может быть проще представить, что с точки зрения оболочки, это всего лишь список.

вам нужно сделать скрипт типа

$ 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, это, вероятно, лучшее место для размещения вашего нового скрипта.

Вам нужно будет обратиться к сообщению в блоге о том, как передать значение ключевых слов из Automater в ваш сценарий оболочки. Если вам повезет, это сработает.

В этом сценарии включен режим отладки оболочки (-vx в первой строке). Вы должны быть в состоянии увидеть, что происходит внутри скрипта, так как отладка покажет, что выполняется для каждого (ну, большинство) шагов в скрипте.

Я бы порекомендовал убедиться, что скрипт работает сам по себе, прежде чем использовать его в Automator. Откройте окно терминала и настройте его следующим образом:

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

Когда он работает именно так, как вам нужно, вы можете удалить -vx в первой строке скрипта.

Этот сценарий также предполагает, что в вашей системе доступно /bin/bash, измените это значение, если необходимо, чтобы запустить доступную оболочку, /bin/sh, /bin/ksh, /bin/zsh, вам может потребоваться изменить путь с /bin/ на /usr/bin, чтобы найти оболочки .

Я не думаю, что вы хотите использовать ключевые слова + = "$ myKeywordsString", так как это будет увеличивать значение ключевых слов каждый раз, когда сценарий проходит через это назначение. Вы можете подтвердить это, посмотрев на вывод в режиме отладки.

Надеюсь, это поможет.

P.S. поскольку вы выглядите новым пользователем, если вы получите ответ, который поможет вам, не забудьте пометить его как принятый и / или дать ему + (или -) в качестве полезного ответа.

...