« キリル文字を使う言語の単語をソートするには | トップページ | ターミナルの日本語表示の件は10.6.5でもなおっていないような »

2010年8月24日 (火)

Automatorでの条件分岐 その2 邪道編






Automatorでシェルの引数を得ようとしている方がいたみたいなので前回の記事を補足しておきます。

わたしも最近ほとんどAutomatorやAppleScriptをいじってないので最新の情報はわかりませんが、基本的にシェルに渡した処理は戻ってこないと思います。それならシェルやAppleScriptで条件分岐してもその後にAutomatorで処理できなければ役に立たないと思ってしまいそうですが、そうでもないんですねえ。OS Xにはautomatorという非常に便利なコマンドがあるんです。それを使えばAutomatorのワークフローに処理をさせることができます。

端折って書きますと、例えばAutomatorで「シェルスクリプトを実行」を選んで条件分岐処理をさせ、そのシェルスクリプトの中でautomatorコマンドを使って別途用意したワークフローに処理をさせるという感じです。Automatorアプリを作ったとしたら、その他に条件分岐後の処理用にワークフローを用意しなければなりませんが、これがけっこう便利です。Automatorのワークフローでなければ面倒くさいもしくはできないという処理はけっこうあると思います。面倒なので今あまり時間がないので先日書いたbashでの条件分岐の例を流用してみます。最後のPDF書類の処理を単なるファイルの移動からautomatorコマンドでデスクトップに保存してあるwatermark.workflowというワークフローを使いウォーターマークを入れレッドのラベルを付けてからデスクトップにPDF_tmpというフォルダーを作ってそこに(追記をご覧ください)保存するという処理に変えてみました。最初の条件分岐をするAutomatorアプリはドロップレットにしてあります(というか自然にそうなりますが)。つまり任意の様々なタイプのファイルを複数アプリにドロップしたところから処理が始まります。

追記 知り合いからどうせだったら最後の処理を他の条件と合わせたらという指摘がありましたので、二つほどワークフローを作ってみました。一つはウォーターマークを入れレッドのラベルを付けた後にFinder項目を移動を使って書類フォルダーのなかのPDFフォルダーに移動。もう一つは同じことをシェルスクリプトにやらせています。シェルスクリプトでわざわざやったのは、ここでまたautomatorコマンドを使って何らかの処理をさせることが可能ということを書きたかっただけです。つまりはワークフローにシェルスクリプトを盛り込むことでautomatorコマンドを使いながら延々と違ったワークフローの処理を繋げることができます。

bashでの条件分岐の例
for f in "$@"
do
 if [ ${f##*.} = "wav" ];
 then
   mv $f ~/Music/WAV;
 elif [ ${f##*.} = "mp3" ];
 then
   mv $f ~/Music/MP3;
 elif [ ${f##*.} = "txt" ];
 then
   mv $f ~/Documents/TEXT;
 elif [ ${f##*.} = "doc" ];
 then
   mv $f ~/Documents/DOC;
 elif [ ${f##*.} = "pdf" ];
 then
   automator -i $f ~/Desktop/watermark.workflow;
 fi
done


watermark.workflowの内容

Watermark1_4



1.Finder項目を移動の場合

Watermark2_2

2.シェルスクリプトの場合

Watermark3_2



上記の例ではautomatorコマンドを使っているのはPDF書類の場合だけですが、他のファイルも別のワークフローで処理させたければ同じように処理を追加すればいいだけです。上記の例はかなり大雑把ですので、細かいところは各自煮詰めてください。

« キリル文字を使う言語の単語をソートするには | トップページ | ターミナルの日本語表示の件は10.6.5でもなおっていないような »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Automatorでの条件分岐 その2 邪道編:

« キリル文字を使う言語の単語をソートするには | トップページ | ターミナルの日本語表示の件は10.6.5でもなおっていないような »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

最近のトラックバック