Pages

ラベル AppleScript の投稿を表示しています。 すべての投稿を表示
ラベル AppleScript の投稿を表示しています。 すべての投稿を表示

2011-07-25

LionのAppleScriptの新機能:Global script application targets

AppleScriptでは、他のアプリケーションを操作する際にtell application "Safari"といったように(ofを使わない限りは)tell構文を使う必要がありました。Lionでも基本的にこれは変わりませんが、スクリプト全体を通してtell先のアプリケーションが同じ場合、スクリプト全体のtell先を指定することでtell構文を省略できるようになりました。

この新機能を利用するためには、AppleScriptエディタの環境設定で「"tell application"ポップアップメニューを表示」というオプションを有効にします。

すると、エディタの編集部分の上に「tell cuurent application」というポップアップが現れるので、ここでアプリケーションを選択すると、スクリプト中でそのアプリケーションに対してtellする必要がなくなります。

例えば、

tell application "Safari"
 search the web for "applescript"
end tell

といったスクリプトは、先のポップアップでSafariを選択すれば、

search the web for "applescript"

だけでよくなります。

2009-05-17

AppleScriptもいいけどAutomatorもね

最近、Automatorを使う機会が増えたのでちょこっと。

AutomatorもAppleScriptもOSXにおける定型作業を自動化するためのものですが、AppleScriptは割と使われているのにAutomatorはあまり使われていないような気がします。おそらく、理由としては昔からある技術で書籍や情報が多い、柔軟なスクリプティングが可能だからといったところでしょうか。

特に日本ではAutomatorに関する情報はあまり見かけません。かつてOS9時代にAppleScriptの書籍が多く出版されたのとは対照的です。また、アクションを組み合わせてワークフローを構築するというAutomatorの特徴が逆に「単純作業しかできない」というイメージに繋がるのかもしれません。

…と書くとAutomatorの良い所がないように見えますが、そうでもありません。AppleScriptより良い部分もたくさんあります。

マウスによる操作

Automatorは基本的にアクションをドラッグ&ドロップしてワークフローを構築します。これの利点はなんと言っても作業効率。スクリプトをキーボードから入力する必要のあるAppleScriptより断然早く目的のものが出来上がります。文法がやや特殊でそれぞれの文が長くなりがちなAppleScriptは慣れるまでが大変でしょう。

細かい知識が必要ない

Automatorのワークフローは、ほとんど何も考えなくても直感的に組むことができます。ある程度意識しなければいけないことといえば、入力と出力の型でしょうか。アクションの出力が「ファイル/フォルダ」だったら、次のアクションの入力もそれに合わせるといった具合です。それでも、file、alias、POSIX file、Finderのitem…とファイルの表現だけでもたくさん存在するAppleScriptよりずっと簡単です。

作業の記録

Automatorでは、ユーザが実際に行った操作を記録してワークフローにすることができます。AppleScriptでも同じようなことができますが、Recordableなアプリケーションに限られていて、最近では忘れられている感があります。AutomatorではアプリケーションがRecordableであるかどうかに関係なく記録できます。

アプリケーションを起動しなくても良い

例えばAppleScriptで画像ファイルの形式を変換しようとすると、まずスクリプトから画像アプリケーションを起動してそこにメッセージを送るのが一般的です。この時の起動時間は意外とイライラの素になります。しかしAutomatorではアクションそれ自体がそのような作業を行ってくれるので外部アプリケーションの起動は必要ありません(もちろん例外はあるでしょうし、OSAXを使えばまた話は変わりますが)。

コンテクストメニューから呼び出せる

AppleScriptによるスクリプトもAutomatorワークフローもともにスクリプトメニューに登録していつでも好きなときに実行することができますが、Automatorワークフローはそれに加えてFinderのコンテクストメニューから呼び出せる「プラグイン」として使用することもできます。

まあ、ループはできるけど条件分岐はできなかったりとかでまだまだ未熟な部分はありますけど、Automatorの中からAppleScriptを呼び出したりもできますし、それぞれの長所を活かした使い方をするのが1番でしょう。