iCalはもはやスクリプトを実行しませんか?


12

AppleScriptの形式で自動化されたタスクがいくつかあり、iCalイベントを介して一晩実行するようにスケジュールします。イベントは単に「イベントの0分前」に「スクリプトを実行する」ように設定され、実行するさまざまなスクリプトを選択します。

ただし、Mountain Lionにアップグレードして以来、「スクリプトを実行」は「ファイルを開く」だけになり、スクリプトは実行されず、AppleScript Editorで開かれます。

スクリプトをアプリケーションにコンパイルして、代わりに開くスクリプトを選択できるかどうかを確認しましたが、イベントから選択することはできません(灰色で表示されています)。

  1. カレンダーでスクリプトを実行するにはどうすればよいですか?
  2. 逆に、スクリプトの実行をスケジュールするより良い方法はありますか?

回答:


10

いくつかの問題を解決できるジョブのスケジューリングに関する質問へ回答を書きました。それはほとんどの場合、一時的なものでしたが、継続的なものでした。

iCalを介してスケジュールしたような進行中のジョブがある場合も、launchdうまく機能します。

ただし、iCal / Calendarで行ったことに完全に置き換えたい場合は、Apple Discussionsボードのこのすばらしい記事でAutomatorの「Calendar Alarmの使用方法を説明しているようです。あるユーザーは、この新しい方法の方が使いやすいとさえ言いました。個人的には、Automatorの追加のパワーにより、新しいパワーも追加されると思います。

そのサイトから:

ここに私のために働く解決策があります:

  1. Automatorで、カレンダーアラームを作成します
  2. ライブラリペインからユーティリティを選択します
  3. AppleScriptを実行を選択して、ワークフロー領域にドラッグします
  4. AppleScriptを[AppleScriptの実行]ボックスにコピーして貼り付けます
  5. 新しく作成したカレンダーアラームを保存する
  6. Calendar.appを開き、新しいイベントを作成します
  7. Automatorカレンダーを参照カレンダーとして選択します
  8. アラートに対して[ファイルを開く]を選択し、Automatorで作成したファイルを選択します。デフォルトでは、「ファイルを開く」を選択すると表示されるファイルがiCalです。
  9. これを、作成したAutomatorアプリの名前に変更します。
  10. ファイル名が表示されない場合は、[その他]を選択します。

ここに画像の説明を入力してください

ユーザーは投稿にもスクリーンショットを添付しましたが、Automatorで選択する必要があるもののスクリーンショットを含めました。


1
これは素晴らしいですね!今夜のタスクでテストされますが、見事に動作するようです。概説された手順に関する興味深いメモの1つは、それらに更新があるようです(Mountain Lionの新しい可能性がありますが、わかりません)。Automatorで「ファイル」を保存するとき、どこかに実際にファイルとして保存するオプションはありませんでした。(Appleがファイルシステムから離れようとするのは間違いありません。)名前を付けて保存するだけです。そして、保存するとすぐに、カレンダーは自動的に作成されたイベントに集中します。時間を調整し、イベントの繰り返しを設定する必要がありました。
デビッド

4

AppleはMac OS X 10.8(別名Mountain Lion)のiCalからカレンダーへの「スクリプトの実行」機能を引き継いでいないようです。

Mac OS Xで実行するアプリケーションをさまざまな方法でスケジュールできます。

組み込みのスケジューリングツール

推奨される組み込みのスケジューリング方法は、launchd(起動デーモン)を使用することです。使用launchdするには、起動ジョブチケットを作成し、~/Library/LaunchAgents/フォルダーに配置します。

cronMac OS Xで使用可能ですが、推奨されなくなりました。ただし、では表せcronず、では表せないスケジュールが多数ありますlaunchd

Appleの開始されたドキュメントは、始めるのに適した場所です。

サードパーティのスケジューリングツール

グラフィカルインターフェイスまたはその他の機能が必要な場合は、サードパーティのアプリケーションを利用できます。私の会社はPower Managerを開発しています。他のソリューションも存在します。


十分なStartCalendarInterval辞書を追加するだけで、cronのようなスケジュールをlaunchdで表すことができます。
リ、

1
cronのスケジューリング言語は、驚くほど強力です。悲しいことに、同じ能力を提供するものを毎分列挙してテストすることなく正確に予測することは困難です。これは、cronが推奨されなくなった理由の1つであり、ポーリングが必要です。launchdは、ポーリングする必要なくタスクをスケジュールできます。
グラハムミル

0

jmlumpkinの答えはスポットオンですが、自分でもっと簡単にすることができます。ブログの投稿で説明しように、スクリプトをコピーして、作成する新しいワークフローに貼り付ける必要はありません。代わりに、ワークフロー内から元のAppleScriptを呼び出すことができます。

on run {input, parameters}

    run script file "Macintosh HD:Some Directory On Disk:a cool script.applescript"

end run
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.