| AppleScript | |
|---|---|
| パラダイム | 自然言語プログラミング、スクリプト |
| 開発者 | アップル社 |
| 初登場 | 1993年[ 1 ] (1993年) |
| 安定版リリース | |
| タイピングの規律 | 弱い、ダイナミック |
| OS | システム 7、Mac OS 8、Mac OS 9、macOS |
| ライセンス | 独自仕様( APSLで入手可能な部品) |
| ファイル名拡張子 | .scpt、.scptd、.applescript |
| Webサイト | developer |
| 影響を受けた | |
| 自然言語、ハイパートーク | |
AppleScriptは、 Apple社が開発したMacアプリケーションの自動制御を可能にするスクリプト言語です。System 7で初めて導入され、現在はmacOSの自動化ツールパッケージに含まれています。AppleScriptという用語は、スクリプト言語、その言語で書かれたスクリプト、または言語の基盤となるmacOS Open Scripting Architectureを指す場合があります。 [ 4 ] [ 5 ]
AppleScriptは主にAppleイベントを駆動するためのメカニズムであり、アプリケーション間でデータを交換し、アプリケーションを制御するアプリケーション間通信(IAC)技術です。 [ 4 ] [ 5 ]さらに、AppleScriptは基本的な計算とテキスト処理をサポートしており、言語に機能を追加する スクリプト追加によって拡張可能です。
AppleScriptはMac環境に密接に結びついており、Windows Script HostがWindows環境に結びついているのと同様です。言い換えれば、AppleScriptはPythonのような汎用スクリプト言語ではありません。AppleScriptがMac環境に特有の側面に結びついている理由の一つは、アドレス指定可能なオブジェクトと操作の辞書の公開をアプリケーションに依存していることです。
コマンド言語によくあるように、AppleScriptは高負荷な処理を直接実行するようには設計されていません。例えば、スクリプトでは高負荷な数学演算や複雑なテキスト処理を効率的に実行することはできません。しかし、AppleScriptは他のツールやテクノロジーと組み合わせて使用することで、より効率的なプログラミングコンテキストを活用することができます。
この言語は構造化プログラミング、手続き型プログラミング、オブジェクト指向プログラミング、自然言語プログラミングの側面を持っていますが、これらのパラダイムのいずれにも厳密には準拠していません。[ 5 ]:xxvi
歴史
1980年代後半、アップルはHyperCardのHyperTalkスクリプト言語を、社内および従来のMac OSオペレーティングシステム内のエンドユーザー開発の標準言語として、またアップル製品と他社製品間のプロセス間通信に使用することを検討した。 [ 6 ] HyperTalkは初心者でもHyperCardスタックをプログラムするために使用できた。アップルのエンジニアは、同様の、しかしよりオブジェクト指向的なスクリプト言語をあらゆるアプリケーションで使用できるように設計できることに気づき、Macintosh全体を近代化するための研究活動から派生したAppleScriptプロジェクトが誕生し、最終的にSystem 7の一部となった。[ 1 ]
AppleScriptは、1993年10月にSystem 7.1.1(System 7 Pro、System 7の最初のメジャーアップグレード)の一部としてリリースされました。[ 1 ] QuarkXPress(バージョン3.2)は、AppleScriptをサポートした最初の主要ソフトウェアアプリケーションの1つでした。これにより、AppleScriptは出版・製版業界で広く採用され、複雑なワークフローを統合することが多くなりました。これは、QuarkXpressやその他の出版アプリケーションがMicrosoft Windowsに移植された後も、出版・製版業界におけるMacintoshの優位性を維持する上で重要な要素でした。
Appleの次世代OSにおけるAppleScriptの将来については不確実性が残っていたが、2002年頃のMac OS Xへの移行とCocoaフレームワークによって、AppleScriptの有用性と柔軟性は大幅に向上した。Cocoaアプリケーションにより、アプリケーション開発者は最小限の労力でアプリケーションに基本的なスクリプト機能を実装できるようになり、直接スクリプト可能なアプリケーションの数が増えた。同時に、Unix基盤への移行と、コマンドを使用してUnixコマンドを直接実行するAppleScriptの機能により、do shell script[ 7 ] AppleScriptはオペレーティングシステム自体をより細かく制御できるようになった。[ 5 ]:863 Mac OS X 10.2でXcodeの一部としてリリースされたAppleScript Studioと、その後Mac OS X 10.6でリリースされたAppleScriptObjCフレームワークにより、ユーザーはAppleScriptを使用してCocoaアプリケーションを構築できるようになった。[ 5 ]:969
2006年の記事では、MacworldはAppleScriptをAppleのこれまでの最も重要な30製品のランキングに含め、17位にランク付けしました。[ 8 ]
2013年のMacworldの記事で、ベテランMacソフトウェア開発者で評論家のジョン・グルーバーは、「AppleScriptのあり得ないほどの持続性」についての考察を次のように締めくくっています。「理論上は、AppleScriptはもっと良くなる可能性がある。しかし、実際には、今ある中で一番うまく機能するものなのだ。これは、いじくり回す人や上級ユーザーにとって、MacがiOSよりも優れていることを例証している。」[ 9 ]
2016年10月、長年AppleScriptのプロダクトマネージャーと自動化の伝道師を務めていたサル・ソゴイアンが、「ビジネス上の理由」でその職を解かれ、Appleを去った。[ 10 ]ジョン・グルーバーやアンディ・イナトコなどMacコミュニティのベテランたちは概して懸念を示し、開発者コミュニティとプロユーザーに対するAppleの取り組みに疑問を呈した。[ 11 ] Appleのソフトウェアエンジニアリング担当上級副社長クレイグ・フェデリギは電子メールで「我々はmacOSの優れた自動化技術を今後もサポートしていくつもりだ」と答えたが、The Mac Observerのジェフ・ガメットは、Appleの自動化全般、特にAppleScriptの将来に対する彼の疑念を和らげることはほとんどできなかったと意見を述べた。[ 12 ]当分の間、AppleScriptはAutomator、ショートカット、サービス、シェルスクリプトとともにmacOSの自動化技術の1つのコンポーネントであり続ける。
意図
AppleScript は、アクセス可能なエンドユーザー スクリプト言語として使用できるように設計されており、ユーザーにアプリケーションを制御し、データとドキュメントにアクセスして変更するためのインテリジェントなメカニズムを提供します。AppleScript は、Macintosh オペレーティング システムがアプリケーションに情報を送信するために使用する標準化されたデータ形式のセットであるApple イベント を使用します。これは、 Web サービスの世界でXML-RPCを介してXPathクエリを送信することにほぼ似ています。[ 5 ] : xxvi Apple イベントを使用すると、スクリプトで複数のアプリケーションを同時に操作して、それらの間でデータを渡すことができるため、人間の介入なしに複雑なタスクを実行できます。[ 4 ]たとえば、単純な Web ギャラリーを作成する AppleScript では、次の操作が考えられます。
- 写真編集アプリケーションで写真を開きます (そのアプリケーションにOpen File Apple イベントを送信します)。
- 写真編集アプリケーションに画像を操作するよう指示します(例:解像度を下げる、枠線を追加する、写真のクレジットを追加する)
- 写真編集アプリケーションに、変更した画像を別のフォルダー内のファイルに保存するように指示します (そのアプリケーションにSaveおよび/またはClose Apple イベントを送信します)。
- 新しいファイル パスを (別の Apple イベント経由で) テキスト エディターまたは Web エディター アプリケーションに送信します。
- そのエディター アプリケーションに、写真へのリンクを HTML ファイルに書き込むように指示します。
- 上記の手順を画像のフォルダ全体(数百または数千枚の写真)に対して繰り返します。
- Apple イベントをグラフィカルFTPクライアントに送信するか、組み込みの AppleScript コマンドを使用するか、Apple イベントを Unix FTP ユーティリティに送信して、修正した写真の HTML ファイルとフォルダーを Web サイトにアップロードします。
ユーザーにとっては、複数のアプリケーションで数百、数千ものステップをスクリプト実行という単一の操作に集約できるため、タスクははるかに短時間で完了し、人為的なエラーの可能性も排除されます。大規模で複雑なスクリプトを一度だけ実行するように開発し、他のスクリプトは繰り返し使用することも可能です。
アプリケーションのスクリプト化可能な要素は、アプリケーションのスクリプト辞書(アプリケーションの一部として配布されます)で確認でき、任意のスクリプトエディタで表示できます。要素は通常、機能的な関係性に基づいてスイートにグループ化されます。スイートには、クラスとコマンドという2種類の基本的な要素があります。
- クラスはスクリプト可能なオブジェクトです。たとえば、テキスト編集アプリケーションには、ほぼ確実にウィンドウ、ドキュメント、テキストのクラスがあります。これらのクラスには、変更可能なプロパティ (ウィンドウのサイズ、ドキュメントの背景色、テキストのフォント サイズなど) があり、他のクラスが含まれている場合があります (ウィンドウには 1 つ以上のドキュメントが含まれ、ドキュメントにはテキストが含まれ、テキスト オブジェクトには段落、単語、文字が含まれます)。
- 一方、コマンドは、スクリプト可能なオブジェクトに与えることができる命令です。AppleScriptブロックの一般的な形式は、スクリプト可能なオブジェクトにコマンドを実行するよう指示することです。
すべてのスクリプト対応アプリケーションは、通常「標準スイート」と呼ばれるいくつかの基本コマンドとオブジェクト(ファイルのオープン、クローズ、保存、印刷、終了、変数へのデータ設定など)を共有しています。また、アプリケーション自体のスクリプト対応プロパティを提供する基本アプリケーションオブジェクトも共有しています。多くのアプリケーションは、アプリケーション自体が実行できるあらゆるタスクを実行できる多数のスイートを備えています。例外的に、アプリケーションが独自のスクリプト辞書を含むプラグインをサポートする場合もあります。
AppleScriptは、ユーザーアクションを記録することで直感的にスクリプトを作成できるように設計されています。このようなAppleScriptの記録機能はアプリに組み込む必要があります。つまり、アプリはAppleイベントとAppleScriptの記録をサポートしている必要があります。[ 13 ] FinderはAppleScriptの記録をサポートしているため、参照用として役立ちます。AppleScriptエディタ(スクリプトエディタ)を開いて記録ボタンをクリックすると、記録可能なアプリでのユーザーアクションは同等のAppleScriptコマンドに変換され、スクリプトエディタウィンドウに出力されます。生成されたスクリプトは保存して再実行し、元のアクションを複製したり、より汎用的に使用できるように変更したりすることができます。
自然言語のメタファー
Apple イベントはアプリケーションにメッセージを送信する方法ですが、AppleScript は Apple イベントを送信するために設計された特別な言語です。初心者にとっての使いやすさという目標に沿って、AppleScript 言語は自然言語メタファーに基づいて設計されています。これは、グラフィカル ユーザー インターフェイスがデスクトップ メタファーに基づいて設計されているのと同じです。適切に記述された AppleScript は、誰にでも読みやすく理解しやすく、編集も容易である必要があります。この言語は主に HyperCard の HyperTalk 言語に基づいており、カードやスタックの HyperCard の世界だけでなく、理論的にはあらゆるドキュメントを参照できるように拡張されています。この目的のために、AppleScript チームはAppleEvent オブジェクト モデル(AEOM) を導入しました。これは、特定のアプリケーションが「認識」するオブジェクトを指定します。
AppleScript言語の核心は、名詞や動詞として動作する用語を組み合わせられることです。例えば、ページ、文書、またはページ範囲を印刷するための別の動詞(printPage、printDocument、printRangeなど)ではなく、AppleScriptでは単一の「print」動詞を使用し、ページ、文書、またはページ範囲などのオブジェクトと組み合わせることができます。
1ページ目を印刷文書2を印刷文書2の1ページ目から5ページ目を印刷する一般的に、AEOMは「ドキュメント」や「段落」などのオブジェクトと、それに対応する「切り取り」や「閉じる」などのアクションを定義します。また、オブジェクトのプロパティを参照する方法も定義されており、「ドキュメントの3番目の段落『Good Day』」や「フロントウィンドウの最後の単語の色」を参照することができます。AEOMはアプリケーション辞書を使用してAppleイベントを人間が読める用語に関連付けることで、人間が読めるAppleScriptとバイトコードのAppleイベント間の相互変換を可能にします。プログラムのどの要素がスクリプト化可能かを知るには、サポートされているアプリケーションの辞書を参照できます。(Xcodeおよびスクリプトエディタアプリケーションでは、これは「ファイル」→「辞書を開く」にあります。)
このようなメッセージの対象となるアプリケーションを指定するために、AppleScript は「tell」構造を使用します。
アプリケーション「Microsoft Word」を終了して終了するあるいは、不定詞を使って tell を 1 行で表現することもできます。
アプリケーション「Microsoft Word」を終了するように指示する「コア スイート」のイベント (アクティブ化、開く、再オープン、閉じる、印刷、終了) の場合、アプリケーションは推移的なコマンドの直接オブジェクトとして指定できます。
アプリケーション「Microsoft Word」を終了しますオブジェクト階層の概念は、ネストされたブロックを使用して表現できます。
tell application "QuarkXPress" tell document 1 tell page 2 tell text box 1 set word 5 to "Apple" end tell end tell end tell end tellオブジェクト階層の概念は、ネストされた前置詞句または一連の所有格 を使用して表現することもできます。
TIFF画像「my bitmap」の3行目の7番目のピクセルTIFF画像「my bitmap」の3行目の7番目のピクセルこれは、別のプログラミング言語では、次の疑似コードのように、順次メソッド呼び出しとして表現される可能性があります。
getTIFF ( "私のビットマップ" ). getRow ( 3 ). getPixel ( 7 );AppleScriptには、「最初の段落」のような序数表記や、「第1段落」のような基数表記の構文があります。同様に、数字自体もテキストとして、あるいは数値として参照できます。「5」、「5番目」、「5」などはすべてサポートされており、AppleScriptでは同義語です。また、「the」という単語は、読みやすさを向上させるためにスクリプト内の任意の場所で使用できます。スクリプトの機能には影響しません。
例
こんにちは世界!
「Hello, World!」プログラムは1行で記述できます。「OK」ボタンと「キャンセル」ボタンのあるモーダルウィンドウを表示するには、次のように記述します。
ダイアログ「Hello, world!」を表示します。「OK」ボタンとアラートアイコンを含むモーダル ウィンドウを表示するには:
「Hello, world!」というアラートを表示します。合成音声を使用してオーディオを出力するには:
「Hello, world!」と言いますフェイルセーフ計算機
アプリケーション「Finder」に伝える-- 変数を設定するthe1を返されたテキストに設定します(ダイアログを表示「1番目」デフォルトの回答「ここに番号」ボタン{ 「続行」}デフォルトボタン1 )the2を返されたテキストに設定します(ダイアログ「2番目」を表示、デフォルトの回答「ここに番号」ボタン{ 「続行」}デフォルトのボタン1 )試すthe1を整数としてthe1に設定するthe2を整数としてthe2に設定するエラー時ダイアログ「計算機には数字のみ入力できます。」をタイトル「エラー」とともに表示するボタン{ 「OK」}デフォルトボタン1戻る終了試行- 追加?(表示ダイアログ「追加しますか?」ボタン{ 「いいえ」、「はい」}デフォルトボタン2 )の返されたボタンが「はい」の場合答えを(the1 + the2 )に設定するタイトルが「回答」のダイアログ回答を表示するボタン{ 「OK」}デフォルトボタン1答える-- 引き算? それ以外の場合、(表示ダイアログ「減算しますか?」ボタン{ 「いいえ」、「はい」}デフォルトボタン2 )の返されたボタンが「はい」の場合、答えを(the1 - the2 )に設定するタイトルが「回答」のダイアログ回答を表示するボタン{ 「OK」}デフォルトボタン1答える-- 掛け算? それ以外の場合、(表示ダイアログ「乗算しますか?」ボタン{ 「いいえ」、「はい」}デフォルトボタン2 )の返されたボタンが「はい」の場合、ans を( the1 * the2 )に設定するタイトルが「回答」のダイアログ回答を表示するボタン{ 「OK」}デフォルトボタン1答える- 分ける? それ以外の場合、(表示ダイアログ「分割しますか?」ボタン{ 「いいえ」、「はい」}デフォルトボタン2 )の返されたボタンが「はい」の場合、答えを( the1 / the2 )に設定するタイトルが「回答」のダイアログ回答を表示するボタン{ 「OK」}デフォルトボタン1答えるそれ以外遅延1「機能が選択されていません。操作はキャンセルされました。」と表示されます。終了の場合終わりを伝えるドライブログイン
このスクリプトは、Finder アプリケーションを制御して、ユーザー名「John」とパスワード「app123」でログインします。
アプリケーション「Finder」に伝えるpassAnsを「app123」に設定するuserAnsを「John」に設定する(表示ダイアログ「ユーザー名」のデフォルトの回答「」)で返されるテキストがuserAnsである場合ダイアログを表示「修正」ボタン{ 「続行」}デフォルトボタン1(表示ダイアログ「ユーザー名:John」& return & 「パスワード」デフォルトの回答"" buttons { "続行" }非表示の回答を持つデフォルトボタン1 )の返されたテキストがpassAnsである場合ダイアログを表示する「アクセス許可」ボタン{ 「OK」}デフォルトボタン1それ以外ダイアログを表示する「パスワードが間違っています」ボタン{ 「OK」}デフォルトボタン1終了の場合それ以外ダイアログ「ユーザー名が正しくありません」ボタンを表示{ 「OK」}デフォルトボタン1終了の場合終わりを伝える開発ツール
スクリプト編集者
以下の開発ツールは、AppleScriptを使ったスクリプト作成のためのプログラミング環境を提供します。スクリプトの作成、検証、コンパイル、実行、デバッグをサポートします。また、AppleScript辞書の一覧表示、様々な形式でのスクリプトの保存、構文のハイライト表示、コードスニペットの挿入機能も備えています。
- AppleScriptエディタ
- macOSに同梱されているAppleのエディタ。Mac OS X Snow Leopard(10.6)からOS X Mavericks(10.9)まではAppleScriptエディタ、macOSのそれ以前とそれ以降のすべてのバージョンではスクリプトエディタと呼ばれている。スクリプトはドキュメント編集ウィンドウで記述し、コンパイルして実行することができる。これらのウィンドウには、ログ情報、実行結果、その他のデバッグ用の情報を利用できる様々なパネルが含まれている。スクリプト辞書や事前に記述されたコードスニペットには、アプリケーションメニューからアクセスできる。OS X Yosemite (10.10)以降、スクリプトエディタにはAppleScriptとJavaScriptの両方で記述する機能が含まれている。[ 14 ]
- エックスコード
- スクリプトを編集したり、AppleScript で記述されたスタンドアロン アプリケーションを作成したりするための機能を備えた、アプリケーション開発用の Apple のツール スイートです。
- スクリプトデバッガー
- Late Night Softwareの商用 IDE である Script Debugger は、スクリプト作成者がシングルステップ実行、ブレークポイント、関数/サブルーチンのステップインとステップアウト、変数の追跡などを使用して AppleScript をデバッグできる、比較的高度な AppleScript 環境です。Script Debugger には、ユーザーが実際の状況で辞書の動作を確認できる高度な辞書ブラウザも含まれています。つまり、辞書の内容を単に一覧表示するだけでなく、たとえばPagesでドキュメントを開いて、辞書の用語がそのドキュメントにどのように適用されるかを確認できるため、辞書のどの部分を使用するかを簡単に判断できます。Script Debugger は、基本的な警告とダイアログ以外の GUI を使用してスクリプトを作成するようには設計されていませんが、スクリプトのコーディングとデバッグに重点を置いています。
- スマイルとスマイルラボ
- AppleScript用のサードパーティ製のフリーウェア/商用IDEで、それ自体が完全にAppleScriptで書かれています。[ 15 ] Smileは無料で、主にAppleScript開発用に設計されています。SmileLabは数値解析、グラフ作成、マシン自動化、Web制作のための広範な追加機能を備えた商用ソフトウェアです。SmileとSmileLabはさまざまなウィンドウを使用します。完全なスクリプトを実行および保存するためのAppleScriptウィンドウ、コードを1行ずつテストするためのAppleScriptターミナル、テキストとXMLを操作するためのUnicodeウィンドウです。ユーザーは、AppleScriptの組み込みダイアログが不十分な状況のために、ダイアログと呼ばれる複雑なインターフェイスを作成できます。
- ASObjC エクスプローラー 4
- Shane StanleyがAppleScript、特にAppleScriptObjC向けに開発した、現在は廃止された商用IDEです。[ 16 ]主な機能は、Cocoaオブジェクト/イベントのログ記録、デバッグ、コード補完です。ユーザーは、他のスクリプトアプリケーションと同様に、Cocoaのイベントやオブジェクトを読み取ることができます。このツールは、もともとAppleScript Libraries ( OS X Mavericksで利用可能)用に開発されました。AppleScript Librariesは、再利用可能なAppleScriptコンポーネントを目指しており、AppleScript辞書(sdef)を内蔵しています。ASObjC Explorer 4は、外部Xcodeスクリプトエディタとしても使用できます。
- フェイススパン
- Late Night Softwareが開発した、グラフィックユーザーインターフェースを備えたAppleScriptアプリケーションを作成するための商用IDE(現在は販売終了) 。 [ 17 ]
スクリプトランチャー
開発やアドホックなシナリオでは、スクリプトエディタからスクリプトを実行できますが、自動化をサポートするには、別のアプリケーションを開かずにスクリプトを実行する必要があります。そのためには、いくつかの方法があります。
- アプレット
- AppleScriptは、スクリプトエディタからアプリケーション(アプレット、またはドラッグアンドドロップによる入力を受け入れる場合はドロップレットと呼ばれる)として保存できます。[ 5 ]:69 アプレットは、 Dock 、 Finderウィンドウのツールバー、 Spotlight、サードパーティ製アプリケーションランチャー、またはアプリケーションを実行できるその他の場所から実行できます。
- フォルダーアクション
- AppleScriptのフォルダアクションを使用すると、フォルダ内で特定の変更(ファイルの追加や削除など)が発生した際にスクリプトを起動することができます。[ 18 ]フォルダアクションは、フォルダをクリックし、コンテキストメニューから「フォルダアクションの設定...」を選択することで割り当てることができます。このコマンドの場所は、Mac OS X 10.6.xでは以前のバージョンと若干異なります。Hazelなどのサードパーティ製ユーティリティでも同様のアクションを実行できます。[ 19 ]
- ホットキーランチャー
- システム環境設定の「キーボードとマウス」設定パネルを使用して、スクリプトメニューのAppleScriptにキーボードショートカットを割り当てることができます。さらに、Alfred、[ 20 ] FastScripts、[ 21 ] Keyboard Maestro、[ 22 ] QuicKeys、[ 23 ] Quicksilver、[ 24 ] TextExpander [ 25 ]といったサードパーティ製のユーティリティも利用可能で、キーの組み合わせを使用してAppleScriptをオンデマンドで実行できます。
- スクリプトメニュー
- このシステム全体のメニューは、macOS メニューバーから AppleScript へのアクセスを提供しており、どのアプリケーションが実行中であっても表示されます。[ 26 ] (さらに、多くの Apple アプリケーション、一部のサードパーティ製アプリケーション、一部のアドオンは、独自のスクリプトメニューを提供しています。これらは、さまざまな方法でアクティブ化できますが、基本的にすべて同じように機能します。) スクリプトメニューでスクリプトを選択すると、そのスクリプトが起動します。Mac OS X 10.6.x 以降では、システム全体のスクリプトメニューは、スクリプトエディタの環境設定から有効にできます。それより前のバージョンの Mac OS X では、AppleScript ユーティリティアプリケーションから有効にできました。最初に有効にすると、スクリプトメニューにはかなり汎用的で機能的な AppleScript のデフォルトライブラリが表示されます。このライブラリは、スクリプトエディタで開いて、AppleScript の学習用の例として使用することもできます。スクリプトは、特定のアプリケーションがフォアグラウンドにある場合にのみメニューに表示されるように整理できます。
- Unix コマンドラインと launchd
- AppleScriptはUnixのコマンドラインから実行することも、スケジュールされたタスクの場合はlaunchdから実行することもできます。[ 5 ] : 716 osascriptコマンドラインツールを使用することで実行できます。[ 27 ] osascriptツールはコンパイルされたスクリプト(.scptファイル)とプレーンテキストファイル(.applescriptファイル。実行時にツールによってコンパイルされます)を実行できます。スクリプトアプリケーションはUnixのopenコマンドを使用して実行できます。
リソース
AppleScriptライブラリ
再利用可能なAppleScriptモジュール(OS X Mavericks以降で利用可能)。AppleScriptまたはAppleScriptObjCで記述され、スクリプトファイルまたはバンドルとして特定の場所に保存され、[ 28 ]他のスクリプトから呼び出すことができます。バンドルとして保存されたライブラリには、AppleScript辞書(sdef)ファイルを含めることができ、[ 29 ] AppleScriptまたはAppleScriptObjCで記述された スクリプティング機能追加のように機能します。
AppleScriptスタジオ
CocoaインターフェースをAppleScriptアプリケーションに接続するためのフレームワーク。Mac OS X 10.4および10.5のXcodeパッケージの一部。現在はAppleScriptObjCに置き換えられ、非推奨となっている。[ 30 ]:438
AppleScriptオブジェクト
Cocoa開発ソフトウェアフレームワーク。AppleScript /Objective-CまたはASOCとも呼ばれ、[ 31 ] Mac OS X Snow Leopard以降のXcodeパッケージの一部です。[ 32 ] AppleScriptObjCを使用すると、AppleScriptでCocoaのクラスとメソッドを直接使用できます。[ 33 ]次の表は、macOSのさまざまなバージョンでAppleScriptObjCが利用できるかどうかを示しています。[ 34 ]
| OSバージョン | Xcodeで | アプレット内 | AppleScriptライブラリ | スクリプトエディタ内 |
|---|---|---|---|---|
| 10.6 | ||||
| 10.7 | ||||
| 10.8 | ||||
| 10.9 | ||||
| 10.10 |
AppleScriptObjC は、以降のすべての Mac OS X バージョンで使用できます。
オートメーター
アクションからワークフローを構築するグラフィカルなモジュール式編集環境。プログラミング知識を必要とせずにAppleScriptの多くの機能を再現することを目的としています。Automatorには、Automatorの簡素化されたフレームワークでは複雑すぎるタスクのために、AppleScriptを格納して実行するために特別に設計されたアクションがあります。[ 35 ]
スクリプト可能なコアシステムアプリケーション
macOSに同梱されているこれらのバックグラウンド専用アプリケーションは、AppleScriptが通常はスクリプト化できない機能にアクセスできるようにするために使用されます。Mac OS X 10.6.3以降、以下のスクリプト化可能なアプリケーションが含まれています。
- VoiceOver(スクリプト可能な音声および点字スクリーンリーダーパッケージ)
- システム イベント (スクリプト不可能なアプリケーションの制御、特定のシステム機能および基本的なファイル操作へのアクセス)
- プリンタ設定ユーティリティ(印刷ジョブを処理するためのスクリプト可能なユーティリティ)
- 画像イベント(コア画像操作)
- HelpViewer (ヘルプ画面を表示するためのスクリプト可能なユーティリティ)
- データベース イベント (最小限の SQLite3 データベース インターフェース)
- AppleScript ユーティリティ (AppleScript 関連の設定をいくつかスクリプト化するためのもの)
スクリプト追加機能 (OSAX)
Appleまたはサードパーティによって開発されたAppleScript用プラグイン。[ 36 ]これらは組み込みのコマンドセットを拡張するように設計されており、AppleScriptの機能を拡張し、アプリケーションによって提供される機能への依存をいくらか減らします。macOSには、Standard Additions(StandardAdditions.osax)と呼ばれるスクリプト機能追加コレクションが含まれており、ユーザーインタラクションダイアログ、ファイルの読み書き、ファイルシステムコマンド、日付関数、テキストおよび数学演算など、AppleScriptのコア機能の一部ではない一連のコマンドとクラスを追加します。このOSAXがなければ、AppleScriptはアプリケーションによって直接提供されない多くの基本アクションを実行できません。
言語
タイピング
変数は厳密に型指定されておらず、宣言する必要もありません。変数は任意のデータ型(スクリプトや関数を含む)を取ることができます。例えば:
-- 変数1という整数変数を作成する変数1を1に設定する-- 変数2というテキスト変数を作成する変数2を「Hello」に設定する-- 変数3というリスト変数を作成する{ 17 , "doubleday" }を変数3にコピーする-- 変数3のリスト項目を別の変数variable4とvariable5にコピーします{変数4 、変数5 }を変数3に設定する-- スクリプトのインスタンスに変数を設定します変数6をスクリプトmyScriptに設定するスコープ設定
サブルーチンはアプリケーションのtellブロックから直接呼び出すことはできません。myまたはを使用するof me必要があります。
tell application "Finder" set x to my myHandler () -- or set x to myHandler () of me end tellon myHandler () --commands end myHandler追加コマンドのスクリプトに同じ手法を使用すると、エラーが減り、パフォーマンスが向上します。
tell application "Finder" set anyNumber to my ( 5から50までのランダムな数字) end tell型とオブジェクト
スクリプトでは、カスタムデータ型を定義したり、言語によって提供され、スクリプト対応アプリケーションで認識されることが多い多くの組み込みクラスやオブジェクトのいずれかを使用したりできます。注目すべき組み込み型とオブジェクトには以下が含まれます。
- 基本オブジェクト
- アプリケーション: 主にtell文の指定子として使用されます (
tell application "Finder" …) - スクリプト: スクリプトオブジェクトはスクリプトのコンテナです。すべてのAppleScriptは実行時にスクリプトオブジェクトを作成し、スクリプトオブジェクトはAppleScript内で作成できます。
- クラス: 他のオブジェクトの型を指定するメタオブジェクト
- 参照: 有効なオブジェクトを指しているかどうかわからない、評価されていないオブジェクト指定子をカプセル化するオブジェクト。その
contentsプロパティにアクセスすることでオンデマンドで評価できます。
- 標準データオブジェクト
- 定数:定数値。言語定義の定数には、、およびが含まれます
pi。tablinefeed - boolean :ブール値(真偽値);サブクラス
constant - 番号:およびの抽象スーパークラス。直接使用されることはほとんどない
integerreal - 整数:整数; 組み込みの数学演算子で操作できます
- 実数:浮動小数点数(実数)。組み込みの数学演算子で操作できます。
- date : 日付と時刻
- text : AppleScript 2.0(Mac OS X 10.4以前)では、クラスはおよびとは
text別物であり、3つの動作は多少異なっていた。2.0(10.5)以降では、これらはすべて同義語であり、すべてのテキストはUTF-16として扱われる[ 37 ]stringUnicode text
- コンテナ
- リスト: オブジェクトの順序付きリスト。他のリストやアプリケーションによって定義されたクラスを含む任意のクラスを含めることができます。
- レコード: オブジェクトのキー付きリスト。リストに似ていますが、キーと値のペアとして構造化されています。実行時のキーによるアクセスはサポートされていません。すべてのキーはコンパイル時の定数識別子である必要があります。
- ファイルシステム
- エイリアス: 既存のファイルシステムオブジェクト(ファイルまたはフォルダ)への参照。移動または名前変更された場合でもファイルシステムオブジェクトへのリンクは維持されます。
- file : ファイルシステムオブジェクトへの参照。存在しないオブジェクトを参照することもできます。
- POSIXファイル:Unix( POSIX )スタイルのスラッシュ(/)表記を使用したプレーンテキストのファイルシステムオブジェクトへの参照。AppleScriptはPOSIXファイルを通常のファイルに自動的に変換するため、真のデータ型ではありません[ 38 ]
- その他
- RGB カラー: RGB トリプレット ( 16 ビットのハイカラー形式) を指定します。色を扱うコマンドやオブジェクトで使用します。
- 単位タイプ: 標準単位間の変換。たとえば、値を として定義し
square yards、演算子をsquare feet使用して単位タイプ間でキャストすることで に変換できます。as
ブロック
AppleScriptは、単一行または複数行の構文による複合文コード構造をサポートしています。複数行構文では、コードブロックの末尾に「キーワードはブロックの先頭の文キーワードです」のようなフレーズを記述します。例えば、次のようになります。 end keyword
-- シンプルなフォームでアプリケーション「Safari」を起動するように指示します-- 複合tell application "MyApp" -- アプリのコマンドend tellスクリプト
スクリプトオブジェクトは完全なオブジェクトです。メソッドとデータをカプセル化し、親スクリプトからデータと動作を継承します。スクリプトオブジェクトは、アプリケーションオブジェクトと同じ「tell」構文を使用でき、ファイルからの読み込みとファイルへの保存が可能です。スクリプトオブジェクトを使用することで、実行時のパフォーマンスが向上する場合があります。スクリプトオブジェクトは次のように定義されます。
スクリプトスクリプト名-- スクリプト固有のコマンドとハンドラー終了スクリプトループ
ループ構造には複数のバリエーションがあり、いずれもキーワードrepeatを使用します。ループはexit repeatで終了できます。
- 無条件
repeat -- 繰り返すコマンドend repeat- 何度か繰り返す
10回繰り返します-- 繰り返されるコマンド繰り返し終了- 条件付き
repeat while では、条件が真と評価される限りブロックが実行されます。repeat untilループは、条件が偽と評価される限りブロックが実行される点を除いて同じです。
xを5に設定し、 x > 0の間繰り返し、 xをx - 1に設定し、繰り返し終了xを5に設定し、 x ≤ 0になるまで繰り返し、 xをx - 1に設定し、繰り返しを終了- 変数を使って
変数は値に初期化され、ブロックの実行ごとに変数はステップ値だけ増加します。指定されていない場合は 1 になります。
-- ブロックを 2000 回繰り返し、i は 1 から 2000 までのすべての値を取得します。repeat with i from 1 to 2000 -- 繰り返されるコマンドend repeat-- ブロックを 4 回繰り返し、 iは値 100、75、50、25 を取得します。iを100から25まで- 25ずつ繰り返します。-- 繰り返されるコマンドend repeat- 列挙する
ループが進行するにつれて、変数には各リスト項目の値が含まれます。
合計を0に設定して、{ 1、2、3、4、5 }でループ変数を使用して繰り返し、合計を合計+ループ変数に設定して繰り返しを終了ハンドラ
ブロック構造のバリエーションであるハンドラーは、サブルーチンを定義し ます。
- 関数ハンドラ
myFunction (パラメータ... )-- サブルーチンコマンドmyFunctionの終了- フォルダアクションブロック
theseItemsを受け取った後にthisFolderにフォルダアイテムを追加すると-- フォルダまたはアイテムに適用するコマンド フォルダアイテムの追加を終了- ハンドラーを実行する
実行中-- コマンドエンドランハンドラは、「on」の代わりに「to」を使用して定義することもでき、括弧で囲まれていないラベル付きパラメータを受け入れるように記述することもできます。
- ラベル付きパラメータを持つハンドラ
時計回りのロック表示ダイアログ(時計は文字列)ロック終了--次のように呼び出されます:現在の日付の周りのロック- 「to」とラベル付きパラメータを使用するハンドラ
下から上までyourNumberをチェックします。下から上までがyourNumber ≤ で、上から下までがyourNumber ≤ の場合、ダイアログ「おめでとうございます!得点しました。」を表示します。end if end check --次のように呼び出します: 7から10まで8をチェックします。AppleScript には、run、open、idle、quit という 4 種類の定義済みハンドラーがあり、それぞれが上記の run ハンドラーと同じ方法で作成されます。
- ハンドラーを実行する
- スクリプトの実行時に呼び出される、スクリプトのメインコードを定義します。スクリプトに引数が渡されない限り、実行ハンドラーブロックはオプションです。明示的な実行ハンドラーブロックが省略された場合、ハンドラーブロック内に含まれていないすべてのコードは、暗黙的な実行ハンドラー内にあるかのように実行されます。
- オープンハンドラー
- 「on open theItems」を使用して定義されます。
theItemsを開くと、theItemsでthisItem を繰り返し、アプリケーション「Finder」にthisItem を更新するように指示します。end repeat end open「オープンハンドラ」を含むスクリプトをアプレットとして保存すると、アプレットはドロップレットになります。ドロップレットは、Finder でアイコン(矢印を含む)で識別できます。アイコンには、アイテムをドロップできることを示します。ドロップレットのアイコンにファイルまたはフォルダをドロップすると、ドロップレットのオープンハンドラが実行されます。ドロップレットのアイコンにドロップされたアイテムへの参照は、オープンハンドラのパラメータとしてドロップレットのスクリプトに渡されます。ドロップレットは通常のアプレットと同じように、実行ハンドラを実行して起動することもできます。
- アイドルハンドラー
- アプリケーションがアイドル状態のときにシステムによって定期的に実行されるサブルーチン。
on idle -- スクリプトの実行が完了したときに実行するコードreturn 60 -- アイドルハンドラを再度実行する前に一時停止する秒数end idleアイドルハンドラは、アプレットまたはステイオープンアプレットとして保存されたドロップレットで使用でき、特定のデータやイベントを監視するスクリプトに便利です。アイドル時間の長さはデフォルトで30秒ですが[ 39 ]、サブルーチンの最後に「return x」ステートメントを含めることで変更できます。ここでxは、システムがハンドラを再度実行する前に待機する秒数です。
- 終了ハンドラ
- アプレットがQuitリクエストを受け取った際に実行されるハンドラです。これを使用して、終了前にデータを保存したり、その他の終了タスクを実行したりできます。
on quit -- スクリプトが終了する前に実行するコマンドcontinue quit -- スクリプトが実際に終了するために必要なコマンドend quitコメント
コメントは様々な形式で記述できます。行コメントは で始まります。あるいは--、それ以降のバージョン(Mac OS X Leopardで初めてリリースされたAppleScript 2.0 )では で始まります。後者の場合、AppleScriptスクリプトがシェバン行#で始まっている場合、実行ファイルとして実行できます。例えば、次のようになります。 #!/usr/bin/osascript
--これは行コメントです# これもそうです! (後のバージョンでは)ブロックコメント(複数行も可)は と で区切られます(*。*)例:
(* これは複数行のコメントです *)ユーザーインタラクション
⌥ OptionAppleScript には、ダイアログ、アラート、選択肢のリストなど、いくつかのユーザーインターフェースオプションがあります。(スクリプトエディタで+と入力すると表示される文字はreturn、1 つのステートメントが複数行にまたがることを示します。)
-- ダイアログ設定dialogReply ダイアログを表示"ダイアログテキスト"デフォルトの回答"テキスト回答"隠し回答偽ボタン{ "スキップ" 、"OK" 、"キャンセル" }デフォルトボタン"OK"キャンセルボタン"スキップ"タイトル付き"ダイアログウィンドウタイトル"アイコン付き注記15 分後に諦める--リストから選択する選択するリスト項目をリスト{ "A" , "B" , "3" }に設定し、タイトルを"リストタイトル" 、プロンプトを"プロンプトテキスト"に設定し、デフォルトの項目を"B"に設定し、 OKボタンの名前を"Looks Good!"に設定し、キャンセルボタンの名前を"Nope, try again"に設定し、複数選択を許可し、空の選択を許可しない-- アラートresultAlertReplyを設定してアラートを表示する"アラートテキスト"警告ボタン{ "スキップ" 、"OK" 、"キャンセル" }デフォルトボタン2キャンセルボタン1 2後に諦める各ユーザーインタラクションメソッドは、クリックされたボタン、選択された項目、または入力されたテキストの値を返すことができ、それらをさらに処理するために使用できます。例えば、
「Hello, world!」ボタンのアラートを表示{ 「無礼に断る」、「喜んで受け入れる」} theAnswerを結果の返されたボタンに設定するtheAnswerが「喜んで受け入れる」の場合はビープ音5を鳴らし、そうでない場合は「Piffle!」と言うend ifオープンスクリプティングアーキテクチャ
Appleは、他のスクリプト言語やサードパーティ製のスクリプト/オートメーション製品(QuicKeysやUserLand Frontierなど)がAppleScriptと同等の機能を持てるよう、Open Scripting Architecture (OSA)を提供しています。AppleScriptはComponent Managerのコンポーネントとして実装されており、これらのコンポーネントとOSAとのインターフェースの基本仕様は公開されているため、他の開発者は独自のスクリプトコンポーネントをシステムに追加することができます。スクリプトの読み込み、保存、コンパイルのための公開クライアントAPIは、すべてのコンポーネントで同じように動作するため、アプレットやドロップレットはこれらのスクリプト言語のスクリプトを保持することができます。[ 40 ]
OSAの特徴の一つにスクリプティング機能追加機能( Open Scripting Architecture eXtensionの略称OSAX)があり[ 36 ]、これはHyperCardの外部コマンドにヒントを得たものである。スクリプティング機能追加機能は、プログラマがAppleScriptの機能を拡張できるようにするライブラリである。スクリプティング機能追加機能として含まれるコマンドはシステム全体で利用可能であり、アプリケーションに依存しない(§ AppleScriptライブラリも参照)。AppleScriptエディタは、OSA言語の一部を直接編集・実行することもできる。
自動化のためのJavaScript
このセクションは、JXAとAppleScriptのスクリプトの比較について拡張する必要があります。不足している情報を追加していただけると助かります。 (2017年5月) |
OS X Yosemiteおよびそれ以降のバージョンのmacOSでは、 JavaScript for Automation(JXA)コンポーネントがAppleScriptの唯一の本格的なOSA言語の代替となっていますが[ 14 ] 、 Macintosh版のPerl、Python、Ruby、Tclはすべて、OSAコンポーネントでなくてもAppleイベントを操作するネイティブな手段をサポートしています。[ 30 ]:516
JXAはObjective-C(およびC言語)の外部言語インターフェースも提供しています。[ 14 ] WebKitのJavaScriptCoreエンジンをベースとした環境であるため、JavaScriptの機能セットはSafariブラウザのシステムエンジンと同期しています。JXAはJavaScriptモジュールシステムを提供しており、 browserifyを介してCommonJSモジュールを使用することもできます。[ 41 ]
参照
- ARexx – Amiga コンピュータ上の Rexx 言語のインタープリタ
参考文献
- ^ a b c Cook, William (2007). 「AppleScript」(PDF) .プログラミング言語の歴史に関する第3回ACM SIGPLAN会議議事録. Association for Computing Machinery . pp. 1– 21. doi : 10.1145/1238844.1238845 . ISBN 9781595937667. S2CID 220938191 .
- ^ Apple Inc. (2022).スクリプトエディタ(バージョン2.11). 2022年11月11日閲覧。
- ^ 「OS X 10.10 Yosemite リリース日」 2014年10月16日. 2014年11月16日閲覧。
- ^ a b cゴールドスタイン、アダム (2005). AppleScript: the missing manual . セバストポル、カリフォルニア州: O'Reilly Media . ISBN 0596008503. OCLC 56912218 .
- ^ a b c d e f g hサンダーソン、ハミッシュ、ローゼンタール、ハナアン (2009). 「Unixコマンドラインとの対話」Learn AppleScript(第3版). バークレー: Apress . pp. 863– 896. doi : 10.1007/978-1-4302-2362-7_27 . ISBN 9781430223610. OCLC 308193726 .
- ^ Flynn, Laurie (1989年2月27日). 「Apple、HyperTalkの標準化を検討」 InfoWorld第11巻第9号 31ページ.
- ^ 「AppleScript言語ガイド コマンドリファレンス:do shell script」 . developer.apple.com . 2019年9月15日閲覧。
- ^ 「Appleのベストヒット:重要な製品30選」 macworld.com 2019年9月12日閲覧。
- ^ Gruber, John (2013年3月). 「AppleScriptのあり得ない持続性」 . Macworld . 30 (3): 100.
- ^ Lovejoy, Ben (2016年11月17日). 「Sal Soghoian氏、Macユーザー自動化の将来について「Appleに問い合わせろ」と発言、同社がポジションを廃止」 . 9to5mac.com . 2017年5月8日閲覧。
- ^ Evans, Jonny (2016年11月17日). 「Appleは本当にAutomatorとAppleScriptを廃止したいのか? ベテランApple開発者の第一人者の突然の解雇はMacコミュニティ全体に衝撃波を送った」 Computerworld.com . 2017年5月8日閲覧。
- ^ Gamet, Jeff (2016年11月23日). 「Appleの意図はMacの自動化への取り組みと同じではない」 . macobserver.com . 2017年5月8日閲覧。
- ^ 「スクリプト可能なアプリケーション」 . developer.apple.com . 2018年7月26日閲覧。
- ^ a b c Siracusa, John (2014年10月16日). 「OS X 10.10 Yosemite: Ars Technicaレビュー: JavaScript自動化」 . Ars Technica . 2017年5月8日閲覧。
- ^ 「Smile and SmileLabホームページ」 . satimage.fr . 2017年5月8日閲覧。
- ^ “ASObjC Explorer 4 は廃止されました” . macosxautomation.com . 2017年6月21日時点のオリジナルよりアーカイブ。 2017年5月8日閲覧。
- ^ 「Mark Alldritt's Journal » FaceSpan」 . blog.latenightsw.com . 2017年5月8日閲覧。
- ^ 「AppleScript言語ガイド:フォルダアクションリファレンス」 . developer.apple.com . 2017年5月8日閲覧。
- ^ Miller, Dan (2010年12月22日). 「Capsuleレビュー:Hazel 2.3」 . Macworld.com . 2017年5月8日閲覧。
- ^ Beam, Brian (2015年2月10日). 「Alfredレビュー:このMacアプリランチャーは輝き続けるが、Alfred Remoteは及ばない」 . Macworld.com . 2017年5月10日閲覧。
- ^ Frakes, Dan (2011年6月2日). 「Capsuleレビュー:FastScripts 2.5」 . Macworld.com . 2017年5月8日閲覧。
- ^ Breen, Christopher (2013年6月4日). 「Mac Gems: Keyboard Maestro 6は反復タスクの天才」 . Macworld.com . 2017年5月10日閲覧。
- ^ Breen, Christopher (2010年5月7日). 「カプセルレビュー:QuicKeys 4」 . Macworld.com . 2017年5月8日閲覧。
- ^ 「AppleScripts – Quicksilver Wiki」 . qsapp.com . 2017年5月10日閲覧。
- ^ Fleishman, Glenn (2015年6月12日). 「TextExpander 5 レビュー」 . Macworld.com . 2017年5月8日閲覧。
- ^ 「Mac自動化スクリプトガイド:システム全体のスクリプトメニューの使用」 developer.apple.com 。2017年5月8日閲覧。
- ^ "osascript(1) Mac OS X マニュアルページ" . www.unix.com . 2024年7月23日閲覧。
- ^ “AppleScriptライブラリ” . macosautomation.com . 2020年7月26日時点のオリジナルよりアーカイブ。2017年5月8日閲覧。
- ^ 「WWDC 2013 セッション 416: AppleScript ライブラリの紹介」 . asciiwwdc.com . 2017年5月8日閲覧。
- ^ a b Neuburg, Matt (2006). AppleScript: 決定版ガイド(第2版). 北京: O'Reilly Media . ISBN 0596102119. OCLC 68694976 .
- ^ Tsai, Michael (2014年9月29日). 「AppleScriptとYosemite」 . mjtsai.com . 2017年5月9日閲覧。
- ^ 「AppleScriptObjC リリースノート」 . developer.apple.com . 2017年5月8日閲覧。
- ^ Waldie, Ben (2012年9月6日). 「Xcodeで基本的なAppleScriptObjC (Cocoa-AppleScript) アプリケーションを構築する」 . peachpit.com . 2017年5月9日閲覧。
- ^表はNaganoya, Takaaki. "ASObjCExtras Scripting Guide" (PDF)から改変。piyocast.com 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF)。2017年5月9日閲覧。
- ^ 「Automator AppleScriptアクションチュートリアル入門」 developer.apple.com 2017年5月8日閲覧。
- ^ a b「テクニカルノート TN1164: Mac OS Xのスクリプティング追加機能」 . developer.apple.com . 2017年5月8日閲覧。
- ^ 「AppleScriptリリースノート:10.5の変更点」 . developer.apple.com . 2017年5月8日閲覧。
- ^ 「POSIXファイル - クラスリファレンス - AppleScript言語ガイド」 . developer.apple.com . 2018年1月8日閲覧。
- ^ 「AppleScript言語ガイド:スクリプトアプリケーションのハンドラ」developer.apple.com。2013年7月21日閲覧。
- ^ 「AppleScriptの概要:オープンスクリプティングアーキテクチャ」developer.apple.com。2017年5月8日閲覧。
- ^ 「スクリプトのインポート」 . GitHub . JXA-Cookbook. 2019年12月6日. 2019年12月9日閲覧。
さらに読む
- 「AppleScript言語ガイド」 . developer.apple.com . 2016. 2017年5月9日閲覧。
- Munro, Mark Conway (2010). AppleScript開発者リファレンス. インディアナポリス: Wiley. ISBN 978-0-470-56229-1. OCLC 468969567 .
- Rosenthal, Hanaan; Sanderson, Hamish (2010). Learn AppleScript: The Comprehensive Guide to Scripting and Automation on Mac OS X (第3版). Berkeley: Apress . doi : 10.1007/978-1-4302-2362-7 . ISBN 978-1-4302-2361-0. OCLC 308193726 .
- Soghoian, Sal ; Cheeseman, Bill (2009). Appleトレーニングシリーズ: AppleScript 1-2-3 . Apple Proトレーニングシリーズ. バークレー: Peachpit Press . ISBN 978-0-321-14931-2. OCLC 298560807 .
- Cook, William (2007). 「AppleScript」(PDF) .プログラミング言語の歴史に関する第3回ACM SIGPLAN会議議事録. ACM. pp. 1– 21. CiteSeerX 10.1.1.86.2218 . doi : 10.1145/1238844.1238845 . ISBN 9781595937667. S2CID 220938191 .
- フォード・ジュニア、ジェリー・リー(2007年)『AppleScriptプログラミング入門』ボストン:トムソン・コース・テクノロジー社、ISBN 978-1-59863-384-9. OCLC 76910522 .
- マット・ノイバーグ(2006年)『AppleScript:決定版ガイド(第2版)』北京、ファーナム:オライリー・メディア、ISBN 0-596-10211-9. OCLC 68694976 .
- ゴールドスタイン、アダム (2005). AppleScript: The Missing Manual . Missing Manualシリーズ. セバストーポル、カリフォルニア州; ファーナム: O'Reilly Media. ISBN 0-596-00850-3. OCLC 56912218 .
- トリンコ、トム (2004). AppleScript for Dummies . For Dummiesシリーズ(第2版). ホーボーケン、ニュージャージー州: Wiley. ISBN 978-0-7645-7494-8. OCLC 56500506 .
外部リンク
- 「AppleScriptの概要」 . developer.apple.com . 2007. 2020年11月7日閲覧。
- 「PythonプログラマのためのAppleScript(比較表)」 aurelio.net 2005年2017年5月9日閲覧。
- 「Doug's AppleScripts for iTunes」 . dougscripts.com . 2017年5月9日閲覧。
- 「MacScripter AppleScriptコミュニティ」 macscripter.net 2017年5月9日閲覧。