AppleScript

提供: MacWiki
移動: 案内検索

AppleScript (アップルスクリプト) とは?[編集]

旧Mac OS (Mac OS 7) 時代から現在の Mac OS X まで標準搭載されているスクリプト言語です。 AppleScript 本体だけでなく、さまざまな AppleScript 対応アプリケーションを同じ言語で操縦することができます。 言語の仕様としては、自然英語に近い構文を採用しているのが特徴です。 詳しくは Wikipedia:AppleScript などを参照してください。

AppleScript のプログラミングで困ったときは Apple サポートコミュニティなどで質問するといいかもしれません。

基本[編集]

  • AppleScript入門教室 (掌田 津耶乃さん)

http://homepage.mac.com/tuyano/AppleScriptTutor/index.html

基本データ型[編集]

  • リスト

リストは複数のデータを「,」区切りで順番に並べたもので、{}で囲んで1つにまとめたもの。

{1984, "Apple", "Macintosh"}
  • レコード

レコードはリストの場合と同様にデータを「,」区切りで並べたものだが、それぞれの頭に:で区切られて重複しないラベルが付けられている。as listなどとすると、ラベルを省いたリストになる。

{elem:"carbon", sym:"C", num:12}

標準名のフォルダ類[編集]

path to 〜という書き方で、特殊なフォルダ(標準の名前のついたフォルダや4文字のコードで表せるフォルダ)やアプリケーションのパスを表現することができます。

path to desktop
path to desktop folder
path to library folder from user domain
path to "dlib" from user domain
path to "dlib" from "fldu"
path to current application
path to frontmost application
path to application "TextEdit"
path to me
path to it

標準名のフォルダ類には以下のようなものがあります。フォルダ名のいくつかは「何々 folder」のように folder を付加してもいいです。例えば、application support の代わりに application support folder、desktop の代わりに desktop folder などと書けるということです。表に示したパスは from 何々 domain を付けないデフォルトの場合のものです。

標準名のフォルダ類
フォルダ名 path to フォルダ名 as string 説明,4文字のコード
POSIX path of (path to フォルダ名)
application support "Macintosh HD:Library:Application Support:" アプリケーションサポート,"asup"
"/Library/Application Support/"
applications folder "Macintosh HD:Applications:" アプリケーションフォルダ,"apps" や "xapp"
"/Applications/"
current application "Macintosh HD:System:Library:CoreServices:AppleScript Runner.app:" スクリプトを実行しているアプリケーション?,このパスはスクリプトをスクリプトメニューから実行した場合
"/System/Library/CoreServices/AppleScript Runner.app/"
current user folder "Macintosh HD:Users:username:" 現在ログイン中のユーザフォルダ,"cusr"
"/Users/username/"
desktop "Macintosh HD:Users:username:Desktop:" デスクトップ,"desk"
"/Users/username/Desktop/"
desktop pictures folder "Macintosh HD:Library:Desktop Pictures:" デスクトップピクチャ・フォルダ,"dtpト"
"/Library/Desktop Pictures/"
documents folder "Macintosh HD:Users:username:Documents:" 書類フォルダ,"docs"
"/Users/username/Documents/"
downloads folder "Macintosh HD:Users:username:Downloads:" ダウンロードフォルダ,"down"
"/Users/username/Downloads/"
favorites folder "Macintosh HD:Users:username:Library:Favorites:" よく使う項目フォルダ,"favs"
"/Users/username/Library/Favorites/"
Folder Action scripts "Macintosh HD:Users:username:Library:Scripts:Folder Action Scripts:" フォルダアクションスクリプト,"fasf"
"/Users/username/Library/Scripts/Folder Action Scripts/"
fonts "Macintosh HD:System:Library:Fonts:" フォント,"font"
"/System/Library/Fonts/"
frontmost application "Macintosh HD:System:Library:CoreServices:Finder.app:" 最前面のアプリケーション,このパスはFinderを最前面にして実行した場合,"egfp"
"/System/Library/CoreServices/Finder.app/"
help folder "Macintosh HD:Library:Documentation:Help:" ヘルプフォルダ,"トhlp"
"/Library/Documentation/Help/"
home folder "Macintosh HD:Users:username:" ホームフォルダ,"cusr"
"/Users/username/"
keychain folder "Macintosh HD:Users:username:Library:Keychains:" キーチェーンフォルダ,"kchn"
"/Users/username/Library/Keychains/"
library folder "Macintosh HD:Library:" ライブラリフォルダ,"dlib" や "xlib"
"/Library/"
modem scripts "Macintosh HD:System:Library:Modem Scripts:" モデムスクリプト,"トmod"
"/System/Library/Modem Scripts/"
movies folder "Macintosh HD:Users:username:Movies:" ムービーフォルダ,"mdoc"
"/Users/username/Movies/"
music folder "Macintosh HD:Users:username:Music:" ミュージックフォルダ,"オdoc"
"/Users/username/Music/"
pictures folder "Macintosh HD:Users:username:Pictures:" ピクチャフォルダ,"pdoc"
"/Users/username/Pictures/"
preferences "Macintosh HD:Users:username:Library:Preferences:" 環境設定,"pref"
"/Users/username/Library/Preferences/"
printer descriptions "Macintosh HD:System:Library:Printers:PPDs:" プリンタ記述,"ppdf"
"/System/Library/Printers/PPDs/"
public folder "Macintosh HD:Users:username:Public:" パブリックフォルダ,"pubb"
"/Users/username/Public/"
scripting additions "Macintosh HD:System:Library:ScriptingAdditions:" スクリプティング機能追加,"トscr"
"/System/Library/ScriptingAdditions/"
scripts folder "Macintosh HD:Users:username:Library:Scripts:" スクリプトフォルダ,"scrト"
"/Users/username/Library/Scripts/"
shared documents folder "Macintosh HD:Users:Shared:" 共有書類フォルダ,"sdat"
"/Users/Shared/"
shared libraries "Macintosh HD:System:Library:CFMSupport:" 共有ライブラリ,新しいOS Xでは存在しないようだ
"/System/Library/CFMSupport/"
sites folder "Macintosh HD:Users:username:Sites:" サイトフォルダ,"site"
"/Users/username/Sites/"
startup disk "Macintosh HD:" 起動ディスク,"boot" や "mcxr" など
"/"
system folder "Macintosh HD:System:" システムフォルダ,"macs" など
"/System/"
system preferences "Macintosh HD:System:Library:PreferencePanes:" システム環境設定,"sprf" や "ppan"
"/System/Library/PreferencePanes/"
temporary items "Macintosh HD:private:var:folders:〜:TemporaryItems:" 暫定項目,"temp"
"/private/var/folders/〜/TemporaryItems/"
trash "Macintosh HD:Users:username:.Trash:" ゴミ箱,"trsh" や "empt"
"/Users/username/.Trash/"
users folder "Macintosh HD:Users:" ユーザフォルダ,"usrs"
"/Users/"
utilities folder "Macintosh HD:Applications:Utilities:" ユーティリティフォルダ,"utiト"
"/Applications/Utilities/"
voices "Macintosh HD:System:Library:Speech:Voices:" 音声,"fvoc"
"/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) -- フォルダ生成しない

AppleScript エディタでの保存形式[編集]

  • テキスト

実行方法[編集]

(完成した)スクリプトを実行させるには各種の方法があります。

スクリプトにはダブルクリックなどするだけで実行されるものと、処理対象としてファイル類をドラッグ&ドロップするなど何らかの操作をまず行うことで実行されるものがある。

Droplet[編集]

Folder action[編集]

  • 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/

参考になるサイト[編集]

その他、次のようなサイトによくまとめられています。

アプリケーション毎のスクリプト[編集]

find:AppleScript で検索して下さい。

Finder など基本的なスクリプト[編集]

Adobe InDesign のスクリプト[編集]

DEVONthink のスクリプト[編集]

DragThing のスクリプト[編集]

DropDMG のスクリプト[編集]

Eudora のスクリプト[編集]

MathPad のスクリプト[編集]

Smile のスクリプト[編集]

XML-RPC や SOAP[編集]

AppleScript 一般[編集]

関連書籍[編集]

日本語の本[編集]

  • 掌田 津耶乃 (著)『AppleScript Studioでゼンマイびゅんびゅん!!』(アスキー, 2003/05/02, 2940円)
  • こばやし ゆたか (著)・AppleScriptリファレンス制作委員会 (著)『AppleScriptリファレンス』(ソフトバンクパブリッシング, 1999/12/26, 3990円)

英語の本[編集]

Wiki内の関連ページ[編集]