iCal führt keine Skripte mehr aus?

12

Ich habe einige automatisierte Aufgaben in Form von AppleScripts, die ich über Nacht über ein iCal-Ereignis ausführen möchte. Das Ereignis würde einfach auf "Skript ausführen" bei "0 Minuten vor dem Ereignis" gesetzt und ich würde die verschiedenen Skripte auswählen, die ausgeführt werden sollen.

Seit dem Upgrade auf Mountain Lion ist "Skript ausführen" nur noch "Datei öffnen" und die Skripte werden nicht ausgeführt. Sie werden nur im AppleScript-Editor geöffnet.

Ich habe versucht, die Skripte in Anwendungen zu kompilieren, um festzustellen, ob ich stattdessen die zu öffnenden auswählen kann, aber sie können nicht aus dem Ereignis ausgewählt werden (sie sind ausgegraut).

  1. Wie kann ich Calendar dazu bringen, meine Skripte auszuführen?
  2. Gibt es umgekehrt eine bessere Möglichkeit, die Ausführung von Skripten zu planen?
David
quelle

Antworten:

10

Ich habe eine Antwort auf eine Frage zum Planen von Jobs geschrieben , die einige der Probleme für Sie lösen könnte. Das war meistens nur einmalig oder nicht.

Wenn Sie einen laufenden Job haben, wie Sie ihn über iCal geplant hätten, launchdfunktioniert dies ebenfalls gut.

Wenn Sie jedoch einen vollständigen Ersatz für etwas Ähnliches wünschen, wie Sie es mit iCal / Calendar getan haben, klingt es so, als würde diese großartige Beschreibung auf dem Apple Discussions Board die Verwendung des "Kalenderalarms " von Automator erklären . Ein Benutzer sagte sogar, dass dieser neue Weg noch einfacher zu bedienen ist. Ich persönlich denke, mit der zusätzlichen Leistung von Automator wird auch neue Leistung hinzugefügt.

Von dieser Seite:

Hier ist eine Lösung, die für mich funktioniert:

  1. Erstellen Sie in Automator einen Kalenderalarm
  2. Wählen Sie im Bibliotheksbereich die Option Dienstprogramme aus
  3. Wählen Sie AppleScript ausführen und ziehen Sie es in den Workflow-Bereich
  4. Kopieren Sie das AppleScript und fügen Sie es in das Feld AppleScript ausführen ein
  5. Speichern Sie den neu erstellten Kalenderalarm
  6. Öffnen Sie Calendar.app und erstellen Sie ein neues Ereignis
  7. Wählen Sie den Automator-Kalender als Referenzkalender
  8. Wählen Sie Open File für die Warnung aus und wählen Sie die Datei aus, die Sie in Automator erstellt haben. Standardmäßig ist iCal die Datei, die angezeigt wird, wenn Sie Datei öffnen auswählen.
  9. Ändern Sie dies in den Namen der von Ihnen erstellten Automator-App.
  10. Wählen Sie Andere, wenn der Dateiname nicht angezeigt wird.

Geben Sie hier die Bildbeschreibung ein

Der Benutzer hat auch einige Screenshots an seinen Beitrag angehängt, aber ich habe einen Screenshot von dem hinzugefügt, was in Automator ausgewählt werden muss.

jmlumpkin
quelle
1
Das sieht gut aus! Es wird heute Abend mit meinen Aufgaben getestet, aber es sieht so aus, als würde es hervorragend funktionieren. Ein interessanter Hinweis zu den beschriebenen Schritten: Es sieht so aus, als gäbe es ein Update für sie (möglicherweise neu bei Mountain Lion, ich weiß es nicht). Beim Speichern der "Datei" in Automator gab es keine Möglichkeit, sie tatsächlich irgendwo als Datei zu speichern. (Apple versucht zweifellos, sich vom Dateisystem zu entfernen.) Es wird nur mit einem Namen gespeichert und das wars. Sobald der Kalender gespeichert ist, wird er mit einem automatisch erstellten Ereignis fokussiert. Ich musste nur die Zeit anpassen und die Wiederholung für das Ereignis einstellen.
David
4

Es scheint, dass Apple die "Run Script" -Funktionalität von iCal nicht auf den Kalender in Mac OS X 10.8, auch bekannt als Mountain Lion, übertragen hat.

Sie können Anwendungen für die Ausführung unter Mac OS X auf verschiedene Arten planen.

Integrierte Planungstools

Die bevorzugte integrierte Planungsmethode ist die Verwendung von launchd (Startdämon). Zur Verwendung launchderstellen Sie Start-Job-Tickets und legen sie in Ihrem ~/Library/LaunchAgents/Ordner ab.

cronist unter Mac OS X verfügbar, wird jedoch nicht mehr empfohlen. Es gibt jedoch viele Zeitpläne, die durch cronund nicht durch dargestellt werden können launchd.

Apples Startdokumentation ist ein guter Anfang.

Planungswerkzeuge von Drittanbietern

Wenn Sie eine grafische Oberfläche oder mehr Funktionen wünschen, stehen Anwendungen von Drittanbietern zur Verfügung. Mein Unternehmen entwickelt Power Manager . Es gibt auch andere Lösungen.

Graham Miln
quelle
Sie können cron-ähnliche Zeitpläne mit launchd darstellen, indem Sie einfach genügend StartCalendarInterval-Wörterbücher hinzufügen .
Lri
1
Die Planungssprache von cron ist unglaublich und äußerst leistungsfähig. Leider ist es schwierig, genau vorherzusagen, was dieselbe Leistung bietet, ohne jede Minute aufzuzählen und zu testen. Dies ist einer der Gründe, warum cron nicht mehr empfohlen wird, sondern eine Abfrage erfordert. launchd kann Aufgaben planen, ohne abfragen zu müssen.
Graham Miln
0

Die Antwort von jmlumpkin ist genau richtig, aber Sie können es sich noch einfacher machen. Wie ich in einem Blogbeitrag beschrieben habe , müssen Sie das Skript nicht kopieren und in den neuen Workflow einfügen, den Sie erstellen. Sie können stattdessen das ursprüngliche AppleScript aus dem Workflow heraus aufrufen:

on run {input, parameters}

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

end run
Dov
quelle