コピペで使うAppleScript

AppleScript とは何か


キニシナイ(^。^)y-. 理解してから使おうとか、使うにはまず理解しなくては、という考えには無理があります。ここに書くのは「理解せずに使う方法」です。「いろいろ使ってるうちにだんだん理解する」のをおすすめします。

AppleScript はどこにあるか


AppleScript 本体というものがどこにあるのかないのか、知らない。ただ必要なのは「AppleScript エディタ」というもの。
c0070938_17111019.png
これはなかなか名前が定まらないソフトで、かつての名前は「スクリプト編集プログラム」だったり「Script Editor」だったり「AppleScript Editor」だったりした。置き場所も、かつては「アプリケーション」>「AppleScript」フォルダの中だったりした。Mac OS X 10.6以降では「アプリケーション」>「ユーティリティ」フォルダの中にある。とにかくなんとかして「AppleScript エディタ」、あるいはそれに相当する似たような名前のアプリを発見してください。

Spotlight で探す、という手もあります。Spotlight というのはメニューバーの右はじにある虫眼鏡のこと。キーボードで control + スペースバーを押すと Spotlight が開くので、そこにapplescript と入力。実際にはたぶん「apples」のあたりで AppleScript がヒットします。

●サンプルスクリプト
(*警告音を2度鳴らすだけの無意味なスクリプト*)
beep 2

サンプルスクリプトの使い方


AppleScript エディタをダブルクリックで起動する。すると空白のウィンドウが開き、カーソルが点滅しているはずだ。
c0070938_1534529.gif

そこにサンプルスクリプトをコピペ。コピペしたらウィンドウ左上、丸ミドリに右三角の「実行」ボタンを押す。上記サンプルの場合、警告音が2度鳴ったら成功。

AppleScript の保存


成功したら、command + S で保存。保存形式は「スクリプト」「スクリプトバンドル」「アプリケーション」「テキスト」とあるが、要はスクリプトかアプリケーションかの二択です。とりあえず「スクリプト」で。「アプリケーション」は、アプリケーションでないとどうにもならん場合にだけ使う。保存画面に「オプション」とかあるけど、キニシナイ。

AppleScript の実行 - スクリプトメニューから実行


日常的に発生するルーティンワークの手間を軽減するために AppleScript を使うのであれば、スクリプトは簡単に実行できなくては意味がない。アップルはそのために「スクリプトメニュー」というものを用意している。

「スクリプト」形式で保存したスクリプトを Finder でダブルクリックすると、AppleScript エディタで開く。実行するには「実行」ボタンを押す必要がある。面倒くさい。しかしスクリプトメニューから実行すると、スクリプトの内容がダイレクトに実行される。実行速度は「アプリケーション」で保存した場合よりも微妙に速い。ような気がする。少なくとも、最前面のアプリケーションを切り替え、ドックにアイコンを表示するというタスク(?)が発生しないぶん、効率がいい。

また、「AppleScript エディタで開いて実行ボタンを押す」その瞬間、最前面のアプリケーションは言うまでもなく AppleScript エディタである。だから例えば「Safari だけを対象にしたスクリプト」の場合、1行目に「tell application "Safari"」を加えなくては機能しない。スクリプトメニューから実行すると、Safari をアクティブにしたままの状態で、ダイレクトに実行できる。

メニューバーにスクリプトメニューを表示させる手順は、面倒なことに「Mac OS X 10.3 まで」「10.4から10.5」「10.6から10.7」でそれぞれ違う。以下を参照されたし。スクリプトメニューとはどういうものかについては特にわかばマークさんの記事が詳しいので、興味ある方は熟読されたし。
Mac Tips X/スクリプトメニュー の利用(10.3から10.5)
わかばマークのMacの備忘録 : スクリプトメニューをランチャとして使う(10.4から10.5)
メニューバーにスクリプトメニューを表示する - Fonland(10.6以降)

AppleScript の実行 - その他のランチャーから実行


ランチャーとかラウンチャーとかローンチャーとかいうのはミサイル発射装置のことで、ぱそ界では、種々のアプリケーションを最小限の手間で起動させることに特化したアプリケーションのこと。 Mac OS X 用のランチャーでいちばん有名なのはシステム標準の「ドック」だが、上のわかばマークさんが書いておられる通り、スクリプトメニューもランチャーとして使えるし、他にも優れたランチャーが、有志によってたくさん作られている。

スクリプトに関して言うと、ランチャーには2種類ある。ランチャーからスクリプトを選択したときにAppleScript エディタで開くものと、エディタで開くことなく内容を実行するものだ。一概にどちらがいいとは言えないが、実行するためには当然、後者がいい(ちなみにドックは前者)。

Quicksilver(無料)
Quicksilver のメイン機能は「名前で呼び出すキーボードランチャー」だ。Quicksilver を召還して、例えば mail とタイプすると Mailが呼び出せる。そこでリターンキーを叩くと Mail がアクティブになる。インテリジェントな学習機能により、実際にはmail の「m」の時点でMailが第一候補に来るので、非常に素早く起動できる。だけど僕は「名前で呼び出す」のはあまり使わず、「ショートカットで呼び出す」機能をメインで使ってます。

Quicksilver の Preferences に Trigger というタブがあり、ここで任意のキーボードショートカットを、任意の書類、フォルダ、アプリケーション、スクリプトに割り当てることができる。少なくともタッチタイピングができない人間にとっては、「Quicksilver を召還して m と打ってMailが候補に表示されたのを目視してリターンキー」よりも「キーボードを見てF4キーを押す」方が頭も技も使わないし、はるかに単純で速い。下の画像はクリックで拡大します。
c0070938_1544028.png
アクションごとに「Scope」というオプションがあり、「Enable in selected applications(以下のアプリケーションでのみ有効)」「Disable in selected applications(以下のアプリケーションでは無効)」などの指定も可能。Quicksilver のトリガーの長所は、図々しいところ。「help]「home」「end」など、通常割り当て不可能なキーに、好きな機能を割り当てられる。ヘルプキーを乗っ取ることができるランチャーを、今のところこれ以外には知らない。OS が予約しているキーコンビネーション(例えば command + M とか)も平気で乗っ取る。メニューバーにアイコンを常駐させないところも好き。欠点はけっこう頻繁(体感としては週に2回くらい?)にクラッシュする不安定さと、開発がいつ止まるかも知れない不安さ。

クラッシュの方は起動し直せばいいだけのことなので、個人的には大した欠点とは感じてません。僕はクラッシュ時の再起動のために、Quicksilver のアイコンをドックに常駐させてます。開発が止まって使えなくなるとしたら、まあ、そのとき考えればいいでしょう。

Alfred(15ユーロ)
Alfred はたいへん評判のいい無料のキーボードランチャーで、15ユーロで「Powerpack」を購入すると機能が増えます。その増える機能の中に「Grobal Hotkeys」というのがあって、これが Quicksilver のトリガー機能に相当するらしい。アルフレッドというのは、バットマンの執事の名前。

BetterTouchTool(無料)
Preferences ウィンドウのいちばん上に「ジェスチャー」「ベーシック」とある。「ジェスチャー」>「Keyboard」と進む。右下の「Add new shortcut」を押し、「Predefined Action:」から「Open Application / File / Script...」を選択。この「Predefined Action:」ポップアップメニューがあまりにも長いので、選ぶのがいちいち面倒くさい。
アプリをキーボードから一発起動するショートカットを作成できる。そう、BetterTouchToolならね / あなたのスイッチを押すブログ

他にも「Butler」とか「LaunchBar」とか「Spark」とか「CoolFunction for X」とか「aLaunch」とかいろいろ試用したり使用したりしたことあるんですが、細かいことは何も覚えてません。自信を持って言えるのは、いま現在使ってる Quicksilver と FinderPop についてだけ。ちなみに FinderPop は、スクリプト形式で保存したスクリプトをダイレクトに実行することは、できない。ただ、ドロップレットを実行するには FinderPop は便利。ドロップレットとは何か、それはキニシナイ。

その他の基礎知識


■コメントアウト
スクリプト中に連続した半角ハイフンふたつがあると、スクリプトの実行に当たり、その行のそれ以降は無視される(コメントアウト)。コメントアウトの方法はもうひとつ、「(*」と「*)」で囲む、というのがあり、複数行まとめてコメントアウトするにはこちらが便利。10.5 以降ではさらに、「#」で始まる行もコメントとして認識される。

■継続記号
スクリプトの1行が長過ぎて読みにくいあるいは扱いづらい場合、改行箇所に継続記号「¬」を追加すれば改行できる。というか改行が無視される。いわば改行アウト。継続記号は スクリプトエディタでは、Option + Return で入力できる。
tell application "Finder" to tell the item named "Macintosh HD" to ¬
tell its item named "Bob" to set its comment to "Hello, my name is Bob!"

■パスについて
これは自分用のメモ。興味ない人が読むと「やっぱりむずかしそう」と思うだけなので、読まない方がいいです。
鳶嶋工房 / AppleScript / Introduction / ファイル指定を覚えよう
AS Hole(AppleScriptの穴) By Piyomaru Software » AppleScript中にファイルパスを記述する » Blog Archive
[PR]
by nobiox | 2012-07-01 13:27 | ├バカスクリプト | Comments(0) |
<< フォルダをリスト形式で開く | 日本語は多いか("大... >>