iCal non esegue più script?


12

Ho alcune attività automatizzate sotto forma di AppleScript che programmerei per l'esecuzione durante la notte tramite un evento iCal. L'evento verrebbe semplicemente impostato su "esegui script" a "0 minuti prima dell'evento" e selezionerei i vari script da eseguire.

Da quando si esegue l'aggiornamento a Mountain Lion, tuttavia, "esegui script" ora è solo "file aperto" e gli script non vengono eseguiti, ma si aprono in AppleScript Editor.

Ho provato a compilare gli script in applicazioni per vedere se potevo selezionare quelli da aprire, ma non sono disponibili per la selezione dall'evento (sono in grigio).

  1. Come posso ottenere Calendar per eseguire i miei script?
  2. Al contrario, esiste un modo migliore per pianificare l'esecuzione degli script?

Risposte:


10

Ho scritto una risposta a una domanda sulla pianificazione dei lavori che potrebbe risolvere alcuni dei problemi per te. Questo è stato per lo più per una volta, anche se in corso.

Se hai un lavoro in corso, come quello che avresti programmato tramite iCal, launchdfunzionerà bene.

Ma se vuoi una vera e propria sostituzione con qualcosa di simile a quello che hai fatto con iCal / Calendar, sembra che questa fantastica scrittura sulla bacheca delle discussioni di Apple spieghi usando "Calendar Alarm " di Automator . Un utente ha anche affermato che questo nuovo modo è ancora più facile da usare. Personalmente penso con la potenza extra di Automator, che aggiunge anche nuova potenza.

Da quel sito:

Ecco una soluzione che funziona per me:

  1. In Automator, crea un allarme calendario
  2. Seleziona Utilità dal riquadro della libreria
  3. Seleziona e trascina Esegui AppleScript nell'area del flusso di lavoro
  4. Copia / incolla AppleScript nella casella Esegui AppleScript
  5. Salva l'allarme del calendario appena creato
  6. Apri Calendar.app, crea un nuovo evento
  7. Seleziona il calendario di Automator come calendario di riferimento
  8. Selezionare Apri file per l'avviso e selezionare il file creato in Automator. Per impostazione predefinita, iCal è il file che viene visualizzato quando si seleziona Apri file.
  9. Modificalo con il nome dell'app Automator che hai creato.
  10. Seleziona Altro se il nome del file non viene visualizzato.

inserisci qui la descrizione dell'immagine

L'utente ha allegato anche alcuni screenshot al proprio post, ma ho incluso uno screenshot di ciò che deve essere selezionato in Automator.


1
Questo sembra fantastico! Stasera verrà testato con i miei compiti, ma sembra che funzionerà magnificamente. Una nota interessante sui passaggi delineati, sembra che ci sia un aggiornamento (forse nuovo per Mountain Lion, non lo so). Durante il salvataggio del "file" in Automator, non era possibile salvarlo come file da qualche parte. (La spinta di Apple ad allontanarsi dal file system, senza dubbio.) Si salva solo con un nome e basta. E non appena salva, Calendar si concentra su un evento creato automaticamente. Ho dovuto solo regolare l'ora e impostare la ripetizione per l'evento.
David

4

Sembra che Apple non abbia trasferito la funzionalità "Esegui script" da iCal a Calendar in Mac OS X 10.8, noto anche come Mountain Lion.

Puoi pianificare l'esecuzione delle applicazioni su Mac OS X in diversi modi.

Strumenti di pianificazione integrati

Il metodo di pianificazione incorporato preferito consiste nell'utilizzare launchd (daemon di avvio). Per utilizzarlo launchd, creare ticket di lavoro avviati e inserirli nella ~/Library/LaunchAgents/cartella.

cronè disponibile su Mac OS X ma non è più raccomandato. Tuttavia, ci sono molti programmi che possono essere rappresentati da crone non da launchd.

La documentazione di lancio di Apple è un buon punto di partenza.

Strumenti di pianificazione di terze parti

Se si desidera un'interfaccia grafica o più funzionalità, sono disponibili applicazioni di terze parti. La mia azienda sviluppa Power Manager ; esistono anche altre soluzioni.


È possibile rappresentare pianificazioni simili a cron con launchd semplicemente aggiungendo abbastanza dizionari StartCalendarInterval .
Lri,

1
il linguaggio di programmazione di cron è incredibile ed estremamente potente. Purtroppo ciò che fornisce la stessa potenza è difficile da prevedere con precisione senza elencare e testare ogni minuto. Questo è uno dei motivi per cui cron non è più raccomandato, richiede il polling; launchd può pianificare le attività senza la necessità di eseguire il polling.
Graham Miln,

0

La risposta di jmlumpkin è perfetta, ma puoi renderti ancora più semplice. Come ho descritto in un post sul blog , non è necessario copiare e incollare lo script nel nuovo flusso di lavoro creato. Puoi chiamare l'AppleScript originale dall'interno del flusso di lavoro, invece:

on run {input, parameters}

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

end run
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.