AppleScript
目次
AppleScript (アップルスクリプト) とは?
旧Mac OS (Mac OS 7) 時代から現在の Mac OS X まで標準搭載されているスクリプト言語です。 AppleScript 本体だけでなく、さまざまな AppleScript 対応アプリケーションを同じ言語で操縦することができます。 言語の仕様としては、自然英語に近い構文を採用しているのが特徴です。 詳しくは Wikipedia:AppleScript などを参照してください。
- AppleScript ヘルプ
- AppleScript Overview - Mac OS X Developer Library
- AppleScript Language Guide - Mac OS X Developer Library
- TN2065: do shell script in AppleScript - Mac OS X Developer Library (Technical Notes)
- TN2084: Using AppleScript Scripts in Cocoa Applications - Mac OS X Developer Library (Technical Notes)
- Search Results: AppleScript - Mac OS X Developer Library
AppleScript のプログラミングで困ったときは Apple サポートコミュニティなどで質問するといいかもしれません。
- Apple サポートコミュニティ > Mac OS & System Software > Mac OS X Technologies
- Apple Support Communities > Mac OS & System Software > Mac OS X Technologies
基本
- AppleScript入門教室 (掌田 津耶乃さん)
http://homepage.mac.com/tuyano/AppleScriptTutor/index.html
基本データ型
- リスト
リストは複数のデータを「,」区切りで順番に並べたもので、{}で囲んで1つにまとめたもの。
{1984, "Apple", "Macintosh"}
- レコード
レコードはリストの場合と同様にデータを「,」区切りで並べたものだが、それぞれの頭に:で区切られて重複しないラベルが付けられている。as listなどとすると、ラベルを省いたリストになる。
{elem:"carbon", sym:"C", num:12}
標準名のフォルダ類
path to 〜という書き方で、標準フォルダやアプリケーションのパスを表現することができます。標準フォルダ名には以下のようなものがあります。標準フォルダ名のいくつかは「何々 folder」のように folder を付加してもいいです。例えば、application support の代わりに application support folder、desktop の代わりに desktop folder などと書けるということです。表に示したパスは from 何々 domain を付けないデフォルトの場合のものです。
標準のフォルダ名 | path to フォルダ名 as string | 説明 |
---|---|---|
POSIX path of (path to フォルダ名) | ||
application support | "Macintosh HD:Library:Application Support:" | アプリケーションサポート |
"/Library/Application Support/" | ||
applications folder | "Macintosh HD:Applications:" | アプリケーションフォルダ |
"/Applications/" | ||
current application | "Macintosh HD:System:Library:CoreServices:AppleScript Runner.app:" | スクリプトを実行しているアプリケーション?,このパスはスクリプトをスクリプトメニューから実行した場合 |
"/System/Library/CoreServices/AppleScript Runner.app/" | ||
current user folder | "Macintosh HD:Users:username:" | 現在ログイン中のユーザフォルダ |
"/Users/username/" | ||
desktop | "Macintosh HD:Users:username:Desktop:" | デスクトップ |
"/Users/username/Desktop/" | ||
desktop pictures folder | "Macintosh HD:Library:Desktop Pictures:" | デスクトップピクチャ・フォルダ |
"/Library/Desktop Pictures/" | ||
documents folder | "Macintosh HD:Users:username:Documents:" | 書類フォルダ |
"/Users/username/Documents/" | ||
downloads folder | "Macintosh HD:Users:username:Downloads:" | ダウンロードフォルダ |
"/Users/username/Downloads/" | ||
favorites folder | "Macintosh HD:Users:username:Library:Favorites:" | よく使う項目フォルダ |
"/Users/username/Library/Favorites/" | ||
Folder Action scripts | "Macintosh HD:Users:username:Library:Scripts:Folder Action Scripts:" | フォルダアクションスクリプト |
"/Users/username/Library/Scripts/Folder Action Scripts/" | ||
fonts | "Macintosh HD:System:Library:Fonts:" | フォント |
"/System/Library/Fonts/" | ||
frontmost application | "Macintosh HD:System:Library:CoreServices:Finder.app:" | 最前面のアプリケーション,このパスはFinderを最前面にして実行した場合 |
"/System/Library/CoreServices/Finder.app/" | ||
help folder | "Macintosh HD:Library:Documentation:Help:" | ヘルプフォルダ |
"/Library/Documentation/Help/" | ||
home folder | "Macintosh HD:Users:username:" | ホームフォルダ |
"/Users/username/" | ||
keychain folder | "Macintosh HD:Users:username:Library:Keychains:" | キーチェーンフォルダ |
"/Users/username/Library/Keychains/" | ||
library folder | "Macintosh HD:Library:" | ライブラリフォルダ |
"/Library/" | ||
modem scripts | "Macintosh HD:System:Library:Modem Scripts:" | モデムスクリプト |
"/System/Library/Modem Scripts/" | ||
movies folder | "Macintosh HD:Users:username:Movies:" | ムービーフォルダ |
"/Users/username/Movies/" | ||
music folder | "Macintosh HD:Users:username:Music:" | ミュージックフォルダ |
"/Users/username/Music/" | ||
pictures folder | "Macintosh HD:Users:username:Pictures:" | ピクチャフォルダ |
"/Users/username/Pictures/" | ||
preferences | "Macintosh HD:Users:username:Library:Preferences:" | 環境設定 |
"/Users/username/Library/Preferences/" | ||
printer descriptions | "Macintosh HD:System:Library:Printers:PPDs:" | プリンタ記述 |
"/System/Library/Printers/PPDs/" | ||
public folder | "Macintosh HD:Users:username:Public:" | パブリックフォルダ |
"/Users/username/Public/" | ||
scripting additions | "Macintosh HD:System:Library:ScriptingAdditions:" | スクリプティング機能追加 |
"/System/Library/ScriptingAdditions/" | ||
scripts folder | "Macintosh HD:Users:username:Library:Scripts:" | スクリプトフォルダ |
"/Users/username/Library/Scripts/" | ||
shared documents folder | "Macintosh HD:Users:Shared:" | 共有書類フォルダ |
"/Users/Shared/" | ||
shared libraries | "Macintosh HD:System:Library:CFMSupport:" | 共有ライブラリ |
"/System/Library/CFMSupport/" | ||
sites folder | "Macintosh HD:Users:username:Sites:" | サイトフォルダ |
"/Users/username/Sites/" | ||
startup disk | "Macintosh HD:" | 起動ディスク,"/" になるのは変? |
"/" | ||
system folder | "Macintosh HD:System:" | システムフォルダ |
"/System/" | ||
system preferences | "Macintosh HD:System:Library:PreferencePanes:" | システム環境設定 |
"/System/Library/PreferencePanes/" | ||
temporary items | "Macintosh HD:private:var:folders:〜:TemporaryItems:" | 暫定項目,〜の部分は環境によって変わる? |
"/private/var/folders/〜/TemporaryItems/" | ||
trash | "Macintosh HD:Users:username:.Trash:" | ゴミ箱 |
"/Users/username/.Trash/" | ||
users folder | "Macintosh HD:Users:" | ユーザフォルダ |
"/Users/" | ||
utilities folder | "Macintosh HD:Applications:Utilities:" | ユーティリティフォルダ |
"/Applications/Utilities/" | ||
voices | "Macintosh HD:System:Library:Speech:Voices:" | 音声 |
"/System/Library/Speech/Voices/" |
path to 標準フォルダ名という書き方を利用すると、その標準フォルダが存在しない場合にデフォルトでフォルダが作成されます。例えば、以下のようなコードをAppleScript エディタで実行すると、ユーザフォルダ内にアプリケーション(Applications)フォルダが作成されます。フォルダ生成しないようにするには without folder creation と付記すればいいです。
get POSIX path of (path to applications folder from user domain) -- フォルダ生成する -- get POSIX path of (path to applications folder from user domain without folder creation) -- フォルダ生成しない
- path to - AppleScript ヘルプ
- フォルダ、ファイル、およびディスクを参照する - AppleScript ヘルプ
- AppleScript 2.1 Help: path to - AppleScript ヘルプ(リンク切れ)
- AppleScript 2.1 Help: 標準名のフォルダ、ファイル、およびディスクを参照する - AppleScript ヘルプ(リンク切れ)
AppleScript エディタでの保存形式
- テキスト
- アプリケーション
実行方法
(完成した)スクリプトを実行させるには各種の方法があります。
- AppleScript エディタでスクリプトを作成・編集し、実行ボタンをクリックして実行する。
- スクリプトをアプリケーション形式で保存し、ダブルクリックやファイル類をドラッグ&ドロップするなどして実行する。
- スクリプトをスクリプトメニューに登録し、そのメニューからスクリプトを選択することで実行する。
- スクリプトを コンテクストメニューに登録し、そのメニューからスクリプトを選択することで実行する。
- AmScriptsCMX(コンテクストメニューにスクリプトメニューを追加する)http://www5.wind.ne.jp/miko/mac_soft/contextual_menu_x/index.html#AmScriptsCMX
- Finderウィンドウのツールバーに登録したスクリプトを実行する
- ターミナルから実行する (コマンド/osascript)
スクリプトにはダブルクリックなどするだけで実行されるものと、処理対象としてファイル類をドラッグ&ドロップするなど何らかの操作をまず行うことで実行されるものがある。
Droplet
- ドロップレット・タイプのスクリプトを作り、その保存したスクリプトファイルにファイル類をドラッグ&ドロップする。
Folder action
- フォルダアクション・タイプのスクリプトを作り、フォルダに割り当てる。トリガーとなるイベントの発生により実行される。
- http://developer.apple.com/mac/library/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_folder_actions.html
- http://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as126.html
- http://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as124.html
- http://docs.info.apple.com/jarticle.html?path=AppleScript/2.1/jp/as79.html
- http://www.applefanbeginner.com/applications/finder/folder_action/
- http://homepage.mac.com/tuyano/AppleScriptTutor/ASTutor12.html
- トリガーの種類:
- opening folder
- closing folder window
- moving folder window
- adding folder items
- 同名ファイル上書きコピーは対象外
- removing folder items
- Mac OS X 10.6以降は,
- "~/Library/Scripts/Folder Action Scripts/ ": スクリプトファイルを置く場所
- "/System/Library/CoreServices/Folder Actions Setup.app" : 設定を行う.Finder上でフォルダを選択すると,サービスメニューに,この「Folder Actions Setup ...」が現れる.
- Mac OS X 10.5以降は,
- "/Library/Scripts/Folder Action Scripts/": スクリプトファイルを置く場所
- "/Applications/AppleScript/Action Setup.app" : 設定を行う
- "/System/Library/CoreServices/Folder Actions Dispatcher.app" : 実行を司る
- 動作が大きく遅延する場合もある.アクティビティモニタ上で遅延が見える場合もある.
- 動いてくれない場合もあるそうです:http://d.hatena.ne.jp/Gururi/20071107
AppleScript Studio について
- AppleScript Studio入門教室 (掌田 津耶乃さん)
http://homepage.mac.com/tuyano/X-AS-Tutor/index.html
- Mac OS X開発の秘密兵器「AppleScript Studio」
http://pc.watch.impress.co.jp/docs/2003/0121/apple1.htm
- ppmweb 公開されている AppleScript Studio ソースを探す
http://ppmweb.lolipop.jp/blog/development/finding-opened-applescript-studio-sources/
- AppleScript Studio で作ったアプリケーションは UniversalBinary 化できないことが多い。うまく Universal Binary 化できた報告例は:
参考になるサイト
その他、次のようなサイトによくまとめられています。
- Yahoo! AppleScript ディレクトリ
- Handy Mac For Beginner's (Atsushi Jinguji)
- 実践!AppleScriptでマックを自動運転 (松下 典聖)
- Enjoy Script (野田 純生)
- AppleScript 覚え書き (水沢 和彦)
- ちゃらんぽらん (岡本 俊介)
- Scripting with AppleScript (Tatsuo Minohara)
- DTPスクリプティングで業務の自動化
アプリケーション毎のスクリプト
find:AppleScript で検索して下さい。
Finder など基本的なスクリプト
- http://www.asahi-net.or.jp/~va5n-okmt/factory/applescript/sample_code/index.html (Okamoto)
- http://homepage2.nifty.com/medamacafe/J/applescript1.html
- http://developer.apple.com/jp/technotes/tn2065.html
Adobe InDesign のスクリプト
- http://www.adobe.com/products/indesign/scripting.html
- http://support.adobe.co.jp/faq/faq/qadoc.sv?224253+002
- http://www2k.biglobe.ne.jp/~lem/indesign/
- http://www.seuzo.jp/
- http://macneko.blog77.fc2.com/blog-entry-4.html JavaScript
DEVONthink のスクリプト
- http://www.adamia.com/tips/edit-in-writeroom-from-devonthink-pro
- http://davidnunez.com.s12599.gridserver.com/2007/3/24/applescript-that-archives-netnewswire-post-to-devonthink-pro
DragThing のスクリプト
DropDMG のスクリプト
Eudora のスクリプト
MathPad のスクリプト
Smile のスクリプト
XML-RPC や SOAP
- http://developer.apple.com/documentation/AppleScript/Conceptual/soapXMLRPC/index.html
- http://pc.watch.impress.co.jp/docs/2003/0214/apple3.htm
AppleScript 一般
- http://www.kanshin.com/?mode=keyword&id=81260
- http://macscripter.net/app_dictionaries/
- http://mortimer.hp.infoseek.co.jp/ AppleScript小物置場
- http://www.drycarbon.com/applescript/
関連書籍
日本語の本
- 掌田 津耶乃 (著)『AppleScript Studioでゼンマイびゅんびゅん!!』(アスキー, 2003/05/02, 2940円)
- サポートサイトは http://homepage.mac.com/tuyano/Tankoubon/X-ByunByun.html
- ISBN:4756142796
- Script Editorでのスクリプトの作成であれば、同じ著者の『新・AppleScriptでゼンマイびゅんびゅん!!』(アスキー, 2000/07/28, 1680円, ISBN:4756134785) など旧 Mac OS の時代の本でも基礎が学べる
- こばやし ゆたか (著)・AppleScriptリファレンス制作委員会 (著)『AppleScriptリファレンス』(ソフトバンクパブリッシング, 1999/12/26, 3990円)
- http://books.softbank.co.jp/ISBN/1011/
- 旧 Mac OS の時代の本だけど、参考になる。
- ISBN:4797310111 - Amazon.co.jp では在庫切れのようです。
英語の本
- Soghoian, Sal (著)・Cheeseman, Bill (著)『Apple Training Series: AppleScript 1-2-3』(Peachpit Press, 2008/12, 49.99ドル)
- Neuburg, Matt (著)『Applescript: The Definitive Guide』(O'Reilly & Associates, 2006/01, 39.99ドル)
- http://www.oreilly.com/catalog/applescpttdg2/
- 英語だけど新しい本でお薦め。
- ISBN:0596102119
- Goodman, Danny (著)『Danny Goodman's AppleScript Handbook (Mac OS X Edition)』(SpiderWorks, 2005, 34.95ドル or 14.95ドル)
- Waldie, Ben (著)『AppleScripting the Finder』(SpiderWorks, 2005, 9.95ドル)