piyomarusoftpiyomarusoft

AppleScriptの穴Blogアーカイブvol.1

  • ダウンロード商品
    ¥ 2,000

2018年1月末に事故で消えた、AppleScript系の世界最大の個人Blog「AppleScriptの穴」の内容について、2008年3月から12月分をまとめた「アーカイブ本」です。 ※ご注意:同Blogは内容を刷新して2018年2月に復活し、現在も運用を続行中です 全418ページ。掲載AppleScriptは262本です。プログラムリストの内容がスクリプトエディタにワンクリックで転送されるURLリンクつき。 当時のMac OS XのAppleScript的な仕様をわかりやすくまとめた資料を添付しています。 ■掲載AppleScript(一部抜粋) 5桁の乱数を生成 指定アプリの存在確認 BSDサブシステムの存在確認 リストから重複部分を除外(ユニーク化) 春分の日と秋分の日を求める 自分の(インターネットアクセス時の)IPアドレスを調べる 起動中のアプリのうちScriptableなものをリストにして選択 起動ディスクの空き容量を返す リストの内容を乱数でシャッフル CPUのクロック数だけを求める 与えられたリストから、値がヌルの要素を削除して返す 最小値を取得する1 最小値を取得する2 最小値を取得する3 文字列中の最長Wordを返す リストをテキストに リストのスイープ Automator集計 chooseFromListでアイテム番号を返す OSのバージョンを求める リストを任意のデリミタ付きでテキストに 文字列のアルファベットチェック 拡張子を取得する 日本語URL Encoding 指定年月の長さを求める 指定文字を置換(リプレース) 国民の祝日を求める 時分秒をシステム設定と関係なく一律に取得 プロセス名一覧を取得 指定フォルダまで強制的に作成 指数表示数値を文字列化 Safariの選択部分のテキストを取得する 各種情報取得 デフォルトの出力先のプリンタ名称(キュー名称?)を取得 リストをタブ区切りのテキストに変換 MacのハードウェアのシリアルNoを取得 BluetoothのOn、Off リスト中の指定要素をサーチして削除して返す ACで動いているかDCで動いているかを取得する 指定クリエータのアプリケーションの情報を返す 最前面のFinderウィンドウのアイコンサイズを取得する リスト中の全要素が同じかどうかをbooleanで返す 指定矩形内に含まれるデータをリストで返す URLエンコードされたファイルパスを元のテキスト(POSIX Path)に戻す Desktop Windowの大きさを取得してメインモニタの大きさを得る RSS用のRFC822形式の日付を返すv2 OSのバージョンを求める5 ユーザー名をLong Formatで取得する2 リスト内のアイテムへの項目追加 リスト項目の並べ替え 指定のiDiskをマウントする OSのバージョンの2桁目(メジャーバージョン)を取得 イベント継承実験1 文字列中のピリオドの個数を数える ISO形式の日付をdateオブジェクトに twitter.comの更新 Zipでフォルダ構造ごと圧縮 指定キーワードの出現回数のカウント System UI Soundが有効になっているかどうかをチェック 指定桁でゼロパディングしたファイル名を返す set the beginning of データのhexダンプ_v2 entire contentsをalias listで取得する 10.4.9〜10.4.11でバージョンが10.4.9と返ってくるバグを回避するOSバージョンの取得方法 今日の日付をYYYYMMDDで求める 指定文字列を指定バイト数以内に収める 画面のサイズを取得するらしい リストのCSV書き出し list sort インターネット接続確認 ファイルの各種情報を取得する 指定の文字エンコーディングでファイル書き出し 1月分のワークログ作成(祝日反映版) 1月分のワークログ作成(iCal連携Ver) Omni Outlinerでドキュメントの全行削除 クリップボード中のテキストから、行単位にトピック作成 最前面のOmniOutliner書類をDHTMLでデスクトップにExport Terminalで同じパスの画面をもう1枚ひらく ターミナルのcurrentをFinderでひらく Finderの最前面のパスをTerminalで開く(強化ver4) iPhotoで選択中の写真をデスクトップピクチャに設定 Finderで作成したZipアーカイブを展開してオリジナルのアーカイブを削除する 指定ファイルがTIFFで128x128であれば、icnsファイルに変換する 10進数をn進数文字列に変換する 自分用のtempoary folderをtmporary items foder(user domain)に作成する 指定のAutomator Workflowのファイルを実行する File Busyが解除になるのを待つ 指定プロセスの可視_不可視切り替え 文字列の前後から別々の文字を指定してトリミング Menu Xtraに入っているアイテムの一覧を取得する 再帰でファイルをカウント parseByDelim:指定デリミタで文字列をリストに変換 OSバージョンの各桁を求める 警告を出しつつ再起動 時間フォーマットをhh-mm-ssからsに変更 GUI Scriptingをenableに GUI Scriptingをdisableに ワイヤレスキーボードのバッテリ残量を得る 指定フォルダ内に指定ファイルが存在するかどうかをチェック 対象文字列の中で、特定の文字以降を取得 Front Rowが実行中かどうかを調べる iCalでReadOnlyではないカレンダーの番号を取得 指定のタグを外す 数字の間に入っているゴミを除去 アルファベットを大文字 or 小文字に変換する アルファベットの大文字か小文字かを検出する 電池容量を取得 iTunesでどこのIPからライブラリを共有されているかを検出 印刷可能なプリンタ一覧から選択してプリント実行 指定のAutomator Workflowのファイルを実行するv2 Dockの制御 Google Earthで現在表示中の画面のスクリーンショットを撮るv1 Google Earthでバージョン情報を取得 日本語入りテキストのURLエンコーディング Systranで翻訳 Mail.appでAccountの情報を取得する Mail.appで新着メールを確認する Mail.appで新着メールの確認インタバルを変更する Mail.appで選択中のメッセージから迷惑メールフラグの状態を取得する 添付ファイルのダウンロード先を求める 選択中のメッセージの実ファイルが存在する場所を取得するv3 URL Access ScriptingでDL GUI Scriptingの確認 JPEG画像の破損チェック Safariの選択部分のテキストを取得する SafariでオープンしているWindowをすべてクローズする 指定文字列の中に指定リストの各アイテムが含まれているかをチェック rmコマンドで指定フォルダ内のファイルの強制削除 modemでダイヤルする modemでダイヤルする2 エイリアスをDockに追加する 入り組んだリストの中に指定要素が存在するかどうかをチェック 指定の名称およびバージョンに該当するアプリケーションプロセスが起動しているかどうかをチェック Database Eventsでパスを指定してDBを作成する Database Eventsを終了する Database EventsのQuit Delayを指定 Database Eventsで、すべてのDBをクローズして終了 Database Eventsで、既存のDBを指定してオープンする Database Eventsを起動して、オープン中のDBを数える 画像の縦長横長を見てフォルダ仕分け リストをレコードに レコードから特定要素を取り出し Safariのウィンドウを画面いっぱいに拡大する スクリプトエディタ上のキャレットがある行に、ファイル名をコメントで展開 指定文字列の中に指定リストの並びが含まれているかをチェック。含まれていたら起点のアイテム番号を、ない場合にはfalseを返す 指定文字列の中に指定リストの並びが含まれているかをチェック。含まれていたら起点のアイテム番号を、ない場合にはfalseを返す v2 テキストから余計な空白行を削除する リストを任意のデリミタ付きでテキストにv2 画面スナップショットのファイル形式を変更 Acrobat Professionalでしおりを作成(文字化け) Pagesの最前面のドキュメントを閉じてラベルを付ける Acrobat Professionalでしおりを数える Acrobat Professionalでしおりを全消去 Acrobat Professionalで指定ページに移動 フォルダ同士の内容比較 ファイルのMac OS形式のフルパスのテキストから、ファイル名のみを取得 バージョン番号文字列からメジャーバージョンのみ取り出し クリエーターコードを指定してアプリケーションを起動する QuickTime Playerで録音を開始する QuickTime Playerで録画を開始する ヨドバシ.comのWebの画面に表示されている200x200ピクセル以上の画像をダウンロードする v2 指定アプリのメインウィンドウのサイズを返す 指定フォルダ内の指定ファイルを削除 真偽値の反転 指定のディスクイメージが暗号化されているかどうかを判定する ファイルのコピーをshell scriptで実行 uuidgenでユニークな(重複のない)文字列を取得 アクティブウィンドウのアクティブセルの値を取得 現在の列のセル幅を変更する 現在の行のセルの高さを変更する 空のplistファイルを指定パスに作成する 空のplistファイルを指定パスに作成するv2 PDFのページ数を数える dateコマンドから生成した日付テキストから、ASのdateオブジェクトを生成する active cellが属するentire rowを取得する Unionコマンドで複数の範囲を同時に使う 条件を指定してセルを抽出する 指定セルの値を取得/設定する セルの文字列を取得する Bubble Sortでリストをソートする Insertion Sortでリストをソートする 挿入ソートを入れ子のリストに対して行う(ソートキー項目指定つき) シェルソート shell sortで入れ子のリストをソート 奇数かどうかチェック 曜日リストの並び順をチェック 曜日リストの並び順をチェック v2 iCalに「日本の祝日」を追加 MindManagerで、ルートトピックを選択状態にする Excelで、バージョンに依存しないで選択範囲のデータ取得 指定の数値リストを作成する データが数値かどうか調べる カレンダーのインクリメント/デクリメント ポップアップメニュー項目の高速生成 MACアドレスを取得する(Mac OS X 10.5のバグ回避版) 指定日に在任中の内閣総理大臣の氏名を取得 数値テキストに対して指定桁ごとにセパレータ文字を入れる リストから選択してアイテム番号を返す リスト中の複数の指定要素を削除して返す 1年分のカレンダーリストを作成して指定日が何週目かを求める v2.1 DragThingで表示しているDock名称を取得する DragThingの特定のDock中で現在選択中のレイヤーを求める DragThingで、最前面のDock上で現在選択されているレイヤーの名称を返す リストの一部を取り出す デスクトップ上のピクチャファイルを指定フォルダに移動 Keynoteでslideの情報を取得する 10.5で(登録してある)プリンタ名称の一覧を取得するv1 10.5で(登録してある)プリンタ名称の一覧を取得するv3 ColorSync Scriptingで各種情報を取得 アドレスブックで所有者の情報を取得する アドレスブックで選択中のPersonの情報を取得する FM v7〜9で、オープン中のデータベースを数える オープン中のデータベースの中にあるテーブル数を数える オープン中のデータベース中のテーブル1にあるフィールドを数える オープン中のデータベースのレイアウト(画面)を数える オープン中のデータベースのレイアウトの名称を取得する オープン中のデータベースで条件検索(複数条件) オープン中のデータベースでソート Microsoft Office 2008用の「VBAからAppleScriptへの移行支援ガイド」が公開 10.5で暗黙のキャストが行われなくなった例(getMLen) OmniPlanでWindowの情報を取得する OmniPlanでドキュメント内のプロジェクトを数える リストの重複項目を除去、リスト2つ同時バージョン Excel v.Xで新規ドキュメントを作成して任意のワークシートを作成 Excel v.2004/2008でウィンドウの最大化 Excel v.Xで最前面のウィンドウを最大化する Excel v.2008でウィンドウ枠の分割を固定 International Settingsの言語で第一優先になっているものを取得 指定フォルダにあるテキストとZipアーカイブのリストを取得。エイリアスで v0 指定フォルダにあるテキストとzipアーカイブのリストを取得。エイリアスで v1 指定フォルダにあるテキストとzipアーカイブのリストを取得。エイリアスで v2 度数分布のテキスト出力 指定フォルダにある特定のラベル(複数)のファイルのリストを取得。エイリアスで MindManagerで、ルートトピック以外のトピックをすべて取得 指定フォルダにある特定の書類種別(複数)のファイルのリストを取得。エイリアスで 特定の文字ではじまるリスト要素を削除して返す 与えられたURLからファイル名を取り出す 単純ダウンロード クリップボードに入っているURLのファイルをダウンロード POSIX pathからクォート記号を除去する(unquote) ファイル名から拡張子を外す

2018年1月末に事故で消えた、AppleScript系の世界最大の個人Blog「AppleScriptの穴」の内容について、2008年3月から12月分をまとめた「アーカイブ本」です。 ※ご注意:同Blogは内容を刷新して2018年2月に復活し、現在も運用を続行中です 全418ページ。掲載AppleScriptは262本です。プログラムリストの内容がスクリプトエディタにワンクリックで転送されるURLリンクつき。 当時のMac OS XのAppleScript的な仕様をわかりやすくまとめた資料を添付しています。 ■掲載AppleScript(一部抜粋) 5桁の乱数を生成 指定アプリの存在確認 BSDサブシステムの存在確認 リストから重複部分を除外(ユニーク化) 春分の日と秋分の日を求める 自分の(インターネットアクセス時の)IPアドレスを調べる 起動中のアプリのうちScriptableなものをリストにして選択 起動ディスクの空き容量を返す リストの内容を乱数でシャッフル CPUのクロック数だけを求める 与えられたリストから、値がヌルの要素を削除して返す 最小値を取得する1 最小値を取得する2 最小値を取得する3 文字列中の最長Wordを返す リストをテキストに リストのスイープ Automator集計 chooseFromListでアイテム番号を返す OSのバージョンを求める リストを任意のデリミタ付きでテキストに 文字列のアルファベットチェック 拡張子を取得する 日本語URL Encoding 指定年月の長さを求める 指定文字を置換(リプレース) 国民の祝日を求める 時分秒をシステム設定と関係なく一律に取得 プロセス名一覧を取得 指定フォルダまで強制的に作成 指数表示数値を文字列化 Safariの選択部分のテキストを取得する 各種情報取得 デフォルトの出力先のプリンタ名称(キュー名称?)を取得 リストをタブ区切りのテキストに変換 MacのハードウェアのシリアルNoを取得 BluetoothのOn、Off リスト中の指定要素をサーチして削除して返す ACで動いているかDCで動いているかを取得する 指定クリエータのアプリケーションの情報を返す 最前面のFinderウィンドウのアイコンサイズを取得する リスト中の全要素が同じかどうかをbooleanで返す 指定矩形内に含まれるデータをリストで返す URLエンコードされたファイルパスを元のテキスト(POSIX Path)に戻す Desktop Windowの大きさを取得してメインモニタの大きさを得る RSS用のRFC822形式の日付を返すv2 OSのバージョンを求める5 ユーザー名をLong Formatで取得する2 リスト内のアイテムへの項目追加 リスト項目の並べ替え 指定のiDiskをマウントする OSのバージョンの2桁目(メジャーバージョン)を取得 イベント継承実験1 文字列中のピリオドの個数を数える ISO形式の日付をdateオブジェクトに twitter.comの更新 Zipでフォルダ構造ごと圧縮 指定キーワードの出現回数のカウント System UI Soundが有効になっているかどうかをチェック 指定桁でゼロパディングしたファイル名を返す set the beginning of データのhexダンプ_v2 entire contentsをalias listで取得する 10.4.9〜10.4.11でバージョンが10.4.9と返ってくるバグを回避するOSバージョンの取得方法 今日の日付をYYYYMMDDで求める 指定文字列を指定バイト数以内に収める 画面のサイズを取得するらしい リストのCSV書き出し list sort インターネット接続確認 ファイルの各種情報を取得する 指定の文字エンコーディングでファイル書き出し 1月分のワークログ作成(祝日反映版) 1月分のワークログ作成(iCal連携Ver) Omni Outlinerでドキュメントの全行削除 クリップボード中のテキストから、行単位にトピック作成 最前面のOmniOutliner書類をDHTMLでデスクトップにExport Terminalで同じパスの画面をもう1枚ひらく ターミナルのcurrentをFinderでひらく Finderの最前面のパスをTerminalで開く(強化ver4) iPhotoで選択中の写真をデスクトップピクチャに設定 Finderで作成したZipアーカイブを展開してオリジナルのアーカイブを削除する 指定ファイルがTIFFで128x128であれば、icnsファイルに変換する 10進数をn進数文字列に変換する 自分用のtempoary folderをtmporary items foder(user domain)に作成する 指定のAutomator Workflowのファイルを実行する File Busyが解除になるのを待つ 指定プロセスの可視_不可視切り替え 文字列の前後から別々の文字を指定してトリミング Menu Xtraに入っているアイテムの一覧を取得する 再帰でファイルをカウント parseByDelim:指定デリミタで文字列をリストに変換 OSバージョンの各桁を求める 警告を出しつつ再起動 時間フォーマットをhh-mm-ssからsに変更 GUI Scriptingをenableに GUI Scriptingをdisableに ワイヤレスキーボードのバッテリ残量を得る 指定フォルダ内に指定ファイルが存在するかどうかをチェック 対象文字列の中で、特定の文字以降を取得 Front Rowが実行中かどうかを調べる iCalでReadOnlyではないカレンダーの番号を取得 指定のタグを外す 数字の間に入っているゴミを除去 アルファベットを大文字 or 小文字に変換する アルファベットの大文字か小文字かを検出する 電池容量を取得 iTunesでどこのIPからライブラリを共有されているかを検出 印刷可能なプリンタ一覧から選択してプリント実行 指定のAutomator Workflowのファイルを実行するv2 Dockの制御 Google Earthで現在表示中の画面のスクリーンショットを撮るv1 Google Earthでバージョン情報を取得 日本語入りテキストのURLエンコーディング Systranで翻訳 Mail.appでAccountの情報を取得する Mail.appで新着メールを確認する Mail.appで新着メールの確認インタバルを変更する Mail.appで選択中のメッセージから迷惑メールフラグの状態を取得する 添付ファイルのダウンロード先を求める 選択中のメッセージの実ファイルが存在する場所を取得するv3 URL Access ScriptingでDL GUI Scriptingの確認 JPEG画像の破損チェック Safariの選択部分のテキストを取得する SafariでオープンしているWindowをすべてクローズする 指定文字列の中に指定リストの各アイテムが含まれているかをチェック rmコマンドで指定フォルダ内のファイルの強制削除 modemでダイヤルする modemでダイヤルする2 エイリアスをDockに追加する 入り組んだリストの中に指定要素が存在するかどうかをチェック 指定の名称およびバージョンに該当するアプリケーションプロセスが起動しているかどうかをチェック Database Eventsでパスを指定してDBを作成する Database Eventsを終了する Database EventsのQuit Delayを指定 Database Eventsで、すべてのDBをクローズして終了 Database Eventsで、既存のDBを指定してオープンする Database Eventsを起動して、オープン中のDBを数える 画像の縦長横長を見てフォルダ仕分け リストをレコードに レコードから特定要素を取り出し Safariのウィンドウを画面いっぱいに拡大する スクリプトエディタ上のキャレットがある行に、ファイル名をコメントで展開 指定文字列の中に指定リストの並びが含まれているかをチェック。含まれていたら起点のアイテム番号を、ない場合にはfalseを返す 指定文字列の中に指定リストの並びが含まれているかをチェック。含まれていたら起点のアイテム番号を、ない場合にはfalseを返す v2 テキストから余計な空白行を削除する リストを任意のデリミタ付きでテキストにv2 画面スナップショットのファイル形式を変更 Acrobat Professionalでしおりを作成(文字化け) Pagesの最前面のドキュメントを閉じてラベルを付ける Acrobat Professionalでしおりを数える Acrobat Professionalでしおりを全消去 Acrobat Professionalで指定ページに移動 フォルダ同士の内容比較 ファイルのMac OS形式のフルパスのテキストから、ファイル名のみを取得 バージョン番号文字列からメジャーバージョンのみ取り出し クリエーターコードを指定してアプリケーションを起動する QuickTime Playerで録音を開始する QuickTime Playerで録画を開始する ヨドバシ.comのWebの画面に表示されている200x200ピクセル以上の画像をダウンロードする v2 指定アプリのメインウィンドウのサイズを返す 指定フォルダ内の指定ファイルを削除 真偽値の反転 指定のディスクイメージが暗号化されているかどうかを判定する ファイルのコピーをshell scriptで実行 uuidgenでユニークな(重複のない)文字列を取得 アクティブウィンドウのアクティブセルの値を取得 現在の列のセル幅を変更する 現在の行のセルの高さを変更する 空のplistファイルを指定パスに作成する 空のplistファイルを指定パスに作成するv2 PDFのページ数を数える dateコマンドから生成した日付テキストから、ASのdateオブジェクトを生成する active cellが属するentire rowを取得する Unionコマンドで複数の範囲を同時に使う 条件を指定してセルを抽出する 指定セルの値を取得/設定する セルの文字列を取得する Bubble Sortでリストをソートする Insertion Sortでリストをソートする 挿入ソートを入れ子のリストに対して行う(ソートキー項目指定つき) シェルソート shell sortで入れ子のリストをソート 奇数かどうかチェック 曜日リストの並び順をチェック 曜日リストの並び順をチェック v2 iCalに「日本の祝日」を追加 MindManagerで、ルートトピックを選択状態にする Excelで、バージョンに依存しないで選択範囲のデータ取得 指定の数値リストを作成する データが数値かどうか調べる カレンダーのインクリメント/デクリメント ポップアップメニュー項目の高速生成 MACアドレスを取得する(Mac OS X 10.5のバグ回避版) 指定日に在任中の内閣総理大臣の氏名を取得 数値テキストに対して指定桁ごとにセパレータ文字を入れる リストから選択してアイテム番号を返す リスト中の複数の指定要素を削除して返す 1年分のカレンダーリストを作成して指定日が何週目かを求める v2.1 DragThingで表示しているDock名称を取得する DragThingの特定のDock中で現在選択中のレイヤーを求める DragThingで、最前面のDock上で現在選択されているレイヤーの名称を返す リストの一部を取り出す デスクトップ上のピクチャファイルを指定フォルダに移動 Keynoteでslideの情報を取得する 10.5で(登録してある)プリンタ名称の一覧を取得するv1 10.5で(登録してある)プリンタ名称の一覧を取得するv3 ColorSync Scriptingで各種情報を取得 アドレスブックで所有者の情報を取得する アドレスブックで選択中のPersonの情報を取得する FM v7〜9で、オープン中のデータベースを数える オープン中のデータベースの中にあるテーブル数を数える オープン中のデータベース中のテーブル1にあるフィールドを数える オープン中のデータベースのレイアウト(画面)を数える オープン中のデータベースのレイアウトの名称を取得する オープン中のデータベースで条件検索(複数条件) オープン中のデータベースでソート Microsoft Office 2008用の「VBAからAppleScriptへの移行支援ガイド」が公開 10.5で暗黙のキャストが行われなくなった例(getMLen) OmniPlanでWindowの情報を取得する OmniPlanでドキュメント内のプロジェクトを数える リストの重複項目を除去、リスト2つ同時バージョン Excel v.Xで新規ドキュメントを作成して任意のワークシートを作成 Excel v.2004/2008でウィンドウの最大化 Excel v.Xで最前面のウィンドウを最大化する Excel v.2008でウィンドウ枠の分割を固定 International Settingsの言語で第一優先になっているものを取得 指定フォルダにあるテキストとZipアーカイブのリストを取得。エイリアスで v0 指定フォルダにあるテキストとzipアーカイブのリストを取得。エイリアスで v1 指定フォルダにあるテキストとzipアーカイブのリストを取得。エイリアスで v2 度数分布のテキスト出力 指定フォルダにある特定のラベル(複数)のファイルのリストを取得。エイリアスで MindManagerで、ルートトピック以外のトピックをすべて取得 指定フォルダにある特定の書類種別(複数)のファイルのリストを取得。エイリアスで 特定の文字ではじまるリスト要素を削除して返す 与えられたURLからファイル名を取り出す 単純ダウンロード クリップボードに入っているURLのファイルをダウンロード POSIX pathからクォート記号を除去する(unquote) ファイル名から拡張子を外す