0

* offを検索しましたが、意味のあるものが見つかりませんでした。

Finder で jpg を選択し、コンテキスト メニューのサービス オプションを使用して画像にキーワードを付けたいと思います。Automator を使用してキーワードを要求し、それを変数に格納します。

次に、exiftool でシェル スクリプトを使用してキーワードを添付します。

問題は、これら 2 つの変数で動作するシェル スクリプトを作成することです (そのうちの 1 つは、もちろんファイル名を含む配列です)。

非常に興味深いブログ エントリを 1 つ見つけました: http://coreygilmore.com/blog/2010/05/07/passing-multiple-automator-variables-to-a-shell-script/

しかし、これを行うにはシェルコードが混乱しすぎていると思います:

for everyFile
exiftool IPTC:Keywords+="$MyKeywordsString" $file

私を助けてください!Applescript も使えると思いますが、書き方もわかりません…</p>

前もって感謝します!

@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」と入力したときにターミナルがエコーした内容については何も知りません。

ありがとうございました!とても有難い!

4

1 に答える 1

1

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は、おそらく新しいスクリプトを配置するのに最適な場所です。

Keywords の値を Automater からシェル スクリプトに渡す方法については、ブログ投稿を参照する必要があります。運が良ければ、うまくいくでしょう。

このスクリプトでは、シェル デバッグ モードがオンになっています ( -vx1 行目)。スクリプト内の各ステップ (ほとんどのステップ) で何が実行されているかがデバッグによって示されるため、スクリプト内で何が起こっているかを確認できるはずです。

Automator で使用する前に、スクリプトが単独で動作することを確認することをお勧めします。ターミナル ウィンドウで開き、次のように設定します。

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

-vx必要なとおりに機能している場合は、スクリプトの最初の行の を削除できます。

また、このスクリプトは がシステムで利用可能であることを前提としてい/bin/bashます。必要に応じてその値を変更して、利用可能なシェルを実行します。シェルを見つけるために/bin/sh, /bin/ksh, /bin/zshパスを変更する必要がある場合があります/bin//usr/bin

スクリプトがその割り当てを通過するたびに Keywords の値が大きくなるため、 Keywords+="$myKeywordsString" を使用する必要はないと思います。これは、デバッグ モードで出力を確認することで確認できます。

これが役立つことを願っています。

PS、あなたは新しいユーザーのようです。役立つ回答が得られた場合は、承認済みとしてマークすることを忘れないでください。また、有用な回答として + (または -) を付けてください。

于 2011-07-27T00:53:01.320 に答える