iCal n'exécute plus les scripts?


12

J'ai quelques tâches automatisées sous la forme d'AppleScripts que je planifierais pour exécuter pendant la nuit via un événement iCal. L'événement serait simplement défini sur "exécuter le script" à "0 minutes avant l'événement" et je sélectionnerais les différents scripts à exécuter.

Depuis la mise à niveau vers Mountain Lion, cependant, "exécuter le script" n'est plus qu'un "fichier ouvert" et les scripts ne s'exécutent pas, ils s'ouvrent simplement dans AppleScript Editor.

J'ai essayé de compiler les scripts dans des applications pour voir si je pouvais sélectionner ceux à ouvrir à la place, mais ils ne sont pas disponibles pour la sélection de l'événement (ils sont grisés).

  1. Comment puis-je demander à Calendar d'exécuter mes scripts?
  2. À l'inverse, existe-t-il un meilleur moyen de planifier l'exécution des scripts?

Réponses:


10

J'ai écrit une réponse à une question sur la planification des travaux qui pourrait résoudre quelques-uns des problèmes pour vous. C'était surtout pour une seule fois par rapport à en cours.

Si vous avez un travail en cours, comme celui que vous auriez planifié via iCal, launchdcela fonctionnera également très bien.

Mais si vous voulez un remplacement pur et simple de quelque chose de similaire à ce que vous avez fait avec iCal / Calendar, cela ressemble à cette grande écriture sur le forum Apple Discussions explique en utilisant 'Calendar Alarm ' d' Automator . Un utilisateur a même déclaré que cette nouvelle méthode est encore plus facile à utiliser. Personnellement, je pense qu'avec la puissance supplémentaire d'Automator, cela ajoute également une nouvelle puissance.

Depuis ce site:

Voici une solution qui fonctionne pour moi:

  1. Dans Automator, créez une alarme de calendrier
  2. Sélectionnez Utilitaires dans le volet bibliothèque
  3. Sélectionnez et faites glisser Exécuter AppleScript dans la zone de flux de travail
  4. Copiez / collez l'AppleScript dans la zone Exécuter AppleScript
  5. Enregistrez l'alarme de calendrier nouvellement créée
  6. Ouvrez Calendar.app, créez un nouvel événement
  7. Sélectionnez le calendrier Automator comme calendrier de référence
  8. Sélectionnez Ouvrir un fichier pour l'alerte, puis sélectionnez le fichier que vous avez créé dans Automator. Par défaut, iCal est le fichier qui apparaît lorsque vous sélectionnez Ouvrir un fichier.
  9. Remplacez-le par le nom de l'application Automator que vous avez créée.
  10. Sélectionnez Autre si le nom de fichier n'est pas affiché.

entrez la description de l'image ici

L'utilisateur a également joint des captures d'écran à son message, mais j'ai inclus une capture d'écran de ce qui doit être sélectionné dans Automator.


1
Ça a l'air super! Il sera testé avec mes tâches ce soir, mais il semble que cela fonctionnera à merveille. Une remarque intéressante sur les étapes décrites, il semble qu'il y ait une mise à jour (peut-être nouvelle pour Mountain Lion, je ne sais pas). Lors de l'enregistrement du «fichier» dans Automator, il n'y avait aucune option pour l'enregistrer réellement sous forme de fichier quelque part. (Poussée d'Apple pour s'éloigner du système de fichiers, sans aucun doute.) Il enregistre simplement avec un nom et c'est tout. Et dès qu'il enregistre, le calendrier se concentre avec un événement créé automatiquement. Je devais juste ajuster l'heure et régler la répétition de l'événement.
David

4

Il semble qu'Apple n'ait pas transféré la fonctionnalité "Exécuter le script" d'iCal à Calendar sous Mac OS X 10.8, alias Mountain Lion.

Vous pouvez planifier des applications pour qu'elles s'exécutent sur Mac OS X de plusieurs manières.

Outils de planification intégrés

La méthode de planification intégrée préférée consiste à utiliser launchd (lancement du démon). Pour l'utiliser, launchdcréez des bons de travail launchd et placez-les dans votre ~/Library/LaunchAgents/dossier.

cronest disponible sur Mac OS X mais n'est plus recommandé. Cependant, il existe de nombreux horaires qui peuvent être représentés par cronet non par launchd.

La documentation launchd d'Apple est un bon point de départ.

Outils de planification tiers

Si vous voulez une interface graphique ou plus de fonctionnalités, des applications tierces sont disponibles. Mon entreprise développe Power Manager ; d'autres solutions existent également.


Vous pouvez représenter des plannings de type cron avec launchd en ajoutant simplement suffisamment de dictionnaires StartCalendarInterval .
Lri

1
Le langage de programmation de cron est incroyable et extrêmement puissant. Malheureusement, ce qui fournit la même puissance est difficile à prévoir avec précision sans énumérer et tester chaque minute. C'est une des raisons pour lesquelles cron n'est plus recommandé, il nécessite une interrogation; launchd peut planifier des tâches sans avoir à interroger.
Graham Miln

0

La réponse de jmlumpkin est parfaite, mais vous pouvez vous faciliter la tâche. Comme je l'ai décrit dans un article de blog , vous n'avez pas besoin de copier et coller le script dans le nouveau flux de travail que vous créez. Vous pouvez appeler le AppleScript d'origine à partir du workflow, à la place:

on run {input, parameters}

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

end run
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.