AppleScript の基本文法

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AppleScript の基本文法

今回は AppleScript の基本的な文法を紹介します。

AppleScript に関しては、以前私が書いたこちらの記事をご覧ください。

変数への代入

変数への代入は set コマンドを使用します。

set <変数名> to <値>

  • set myName to "Yoda"
  • set newHope to 4
  • set iAmYourFather to true

List

List は順序付けられた値のコレクションです。
Objective-C の NSArray, Java の List に相当します。

AppleScript では、同一の List に格納される値の型は異なっていても問題ありません。

{1, 7, "Beethoven", 4.5}

値の取得には item を使用します。
以下の式の値は 7 となります。

item 2 of {1, 7, "Beethoven", 4.5}

of はオブジェクトの属性を取得するための予約語です。
以下の式で、オブジェクトの属性を取得します。

<属性> of <オブジェクト>

上の例では List {1, 7, "Beethoven", 4.5}item 2 を取得しています。

また、AppleScript のインデックスは 1 が最初のようです。
0 ではありません。

Record

Record はラベル付けされたプロパティの、順不同のコレクションです。
Objective-C の NSDictionary, Java の Map に相当します。

{product:"pen", price:2.34}

値の取得には of を使用します。
以下の式の値は 2.34 となります。

price of {product:"pen", price:2.34}

if 文

if 文の書き方は以下のとおりです。

if <条件式> then
    <命令>
else if <条件式> then
    <命令>
else 
    <命令>
end if

set episode to 1

if episode = 1 then
    display dialog "The Phantom Menace"
else if episode = 2 then
    display dialog "Attack of the Clones"
else
    display dialog "Revenge of the Sith"
end if

display dialog はダイアログを表示するコマンドです。
デバッグにとても有効です。
覚えておきましょう。

display dialog <表示する値>

repeat 文

ループを実行する構文です。
repeat 文には色々な書き方が存在します。

1. 無限ループ

repeat
    <命令>
end repeat

ループを抜けるためには、exit repeat を実行します。

2. 回数指定

repeat <回数> times
    <命令>
end repeat

回数 は整数値です。

3. 条件に当てはまるまで

repeat until <条件式>
    <命令>
end repeat

4. 条件に当てはまるあいだ

repeat while <条件式>
    <命令>
end repeat

5. 開始と終了の指定

repeat with <ループ変数> from <開始値> to <終了値>
    <命令>
end repeat

6. List のループ

repeat with <ループ変数> in <List>
    <命令>
end repeat

予約語

AppleScript の予約語は以下のとおりです。

about above after against and apart from
around as aside from at back before
beginning behind below beneath beside between
but by considering contain contains contains
continue copy div does eighth else
end equal equals error every exit
false fifth first for fourth from
front get given global if ignoring
in instead of into is it its
last local me middle mod my
ninth not of on onto or
out of over prop property put ref
reference repeat return returning script second
set seventh since sixth some tell
tenth that the then third through
thru timeout times to transaction true
try until where while whose with
without

たくさんありますね。
私もこれから少しずつ学んでいこうと思います。

ひとこと

ほんの一部ですが、AppleScript の重要な文法を紹介しました。
ある程度書けるようになったら、次はどんどん手を動かして便利なスクリプトを作ってみましょう。

リンク

ミレニアム・ファルコン製作日記 #11

11 号 表紙

mfd_11_1

パーツ

mfd_11_2

mfd_11_3

mfd_11_4

成果

mfd_11_5

今回の作業は以下の 2 つでした。

  • パイプを取り付ける
  • 船倉壁(R)と主船倉床を仮組みする

主船倉のドアにパイプを取り付けました。
ミレニアム・ファルコンの内部はパイプとダクトが入り乱れています。
一度でいいからセットを生で見てみたいですね。

仮組みでは壁と床がしっかりハマることを確認しました。
順調に出来てきています。

嬉しいお知らせ

5 月 4 日はスター・ウォーズの日です!(May the 4th だから)
今年もこの日に色々やってくれます。

  • スター・ウォーズ フォースの覚醒 Blu-ray & DVD 発売
  • スター・ウォーズ 反乱者たち シーズン 2 一挙放送(Disney XD)
  • スター・ウォーズ/クローン・ウォーズ ザ・ロスト・ミッション 一挙放送(Dlife)

楽しみに待ちましょう。

それではまた次回。

May the Force be with you!