iCal Tidak Lagi Menjalankan Skrip?

12

Saya memiliki beberapa tugas otomatis dalam bentuk AppleScripts yang akan saya jadwalkan untuk dijalankan semalam melalui acara iCal. Acara hanya akan diatur untuk "menjalankan skrip" pada "0 menit sebelum acara" dan saya akan memilih berbagai skrip untuk dijalankan.

Namun, sejak memutakhirkan ke Mountain Lion, "jalankan skrip" sekarang hanyalah "buka file" dan skrip tidak berjalan, skrip tersebut hanya dibuka di AppleScript Editor.

Saya mencoba mengkompilasi skrip ke dalam aplikasi untuk melihat apakah saya dapat memilih skrip yang akan dibuka, tetapi skrip tersebut tidak tersedia untuk dipilih dari acara tersebut (mereka diklik).

  1. Bagaimana saya bisa mendapatkan Kalender untuk menjalankan skrip saya?
  2. Sebaliknya, apakah ada cara yang lebih baik untuk menjadwalkan skrip untuk dijalankan?
David
sumber

Jawaban:

10

Saya menulis jawaban untuk pertanyaan tentang penjadwalan pekerjaan yang dapat memecahkan beberapa masalah untuk Anda. Itu sebagian besar untuk satu kali saja dibandingkan dengan yang sedang berlangsung.

Jika Anda memiliki pekerjaan yang berkelanjutan, seperti pekerjaan yang Anda jadwalkan melalui iCal, launchdakan bekerja dengan baik juga.

Tetapi jika Anda ingin penggantian langsung untuk sesuatu yang mirip dengan apa yang Anda lakukan dengan iCal / Kalender, kedengarannya seperti tulisan bagus di papan Diskusi Apple menjelaskan menggunakan Automator's 'Calendar Alarm '. Seorang pengguna bahkan mengatakan bahwa cara baru ini bahkan lebih mudah digunakan. Saya pribadi berpikir dengan kekuatan ekstra Automator, itu juga menambah kekuatan baru.

Dari situs itu:

Inilah solusi yang berfungsi untuk saya:

  1. Di Automator, buat Alarm Kalender
  2. Pilih Utilitas dari panel perpustakaan
  3. Pilih & seret Jalankan AppleScript ke area alur kerja
  4. Salin / tempel AppleScript ke dalam kotak Run AppleScript
  5. Simpan Alarm Kalender yang baru dibuat
  6. Buka Calendar.app, buat acara baru
  7. Pilih kalender Automator sebagai kalender referensi Anda
  8. Pilih Buka File untuk lansiran, dan pilih file yang Anda buat di Automator. Secara default, iCal adalah file yang muncul ketika Anda memilih Buka File.
  9. Ubah itu menjadi nama aplikasi Automator yang Anda buat.
  10. Pilih Lainnya jika nama file tidak ditampilkan.

masukkan deskripsi gambar di sini

Pengguna memasang beberapa tangkapan layar ke pos mereka, juga, tetapi saya telah menyertakan tangkapan layar dari apa yang perlu dipilih di Automator.

jmlumpkin
sumber
1
Ini terlihat hebat! Ini akan diuji dengan tugas saya malam ini, tapi sepertinya itu akan bekerja dengan baik. Satu catatan menarik tentang langkah-langkah yang diuraikan, sepertinya ada pembaruan untuk mereka (mungkin baru untuk Mountain Lion, saya tidak tahu). Saat menyimpan "file" di Automator, tidak ada opsi untuk benar-benar menyimpannya sebagai file di suatu tempat. (Dorongan Apple untuk menjauh dari sistem file, tidak diragukan lagi.) Hanya menyimpan dengan nama dan hanya itu. Dan segera setelah disimpan, Kalender fokus dengan acara yang dibuat secara otomatis. Saya hanya harus menyesuaikan waktu dan mengatur pengulangan untuk acara tersebut.
David
4

Tampaknya Apple tidak membawa fungsionalitas "Run Script" dari iCal ke Kalender di Mac OS X 10.8, alias Mountain Lion.

Anda dapat menjadwalkan aplikasi untuk berjalan di Mac OS X dalam beberapa cara.

Alat Penjadwalan Built-In

Metode penjadwalan bawaan yang disukai adalah menggunakan launchd (launch daemon). Untuk menggunakan launchdAnda membuat tiket kerja launchd dan menempatkannya di ~/Library/LaunchAgents/folder Anda .

crontersedia di Mac OS X tetapi tidak lagi direkomendasikan. Namun, ada banyak jadwal yang dapat diwakili oleh crondan bukan oleh launchd.

Dokumentasi launchd Apple adalah tempat yang baik untuk memulai.

Alat Penjadwalan Pihak Ketiga

Jika Anda ingin antarmuka grafis atau lebih banyak fungsi, ada aplikasi pihak ketiga yang tersedia. Perusahaan saya mengembangkan Power Manager ; solusi lain juga ada.

Graham Miln
sumber
Anda dapat mewakili jadwal seperti cron dengan launchd hanya dengan menambahkan kamus StartCalendarInterval yang cukup .
Lri
1
Bahasa penjadwalan cron luar biasa dan sangat kuat. Sayangnya apa yang memberikan kekuatan yang sama sulit untuk diprediksi secara akurat tanpa menghitung dan menguji setiap menit. Ini adalah salah satu alasan mengapa cron tidak lagi direkomendasikan, ini membutuhkan polling; launchd dapat menjadwalkan tugas tanpa perlu polling.
Graham Miln
0

Jawaban jmlumpkin tepat, tetapi Anda bisa membuatnya lebih mudah untuk diri sendiri. Seperti yang saya jelaskan di posting blog , Anda tidak perlu menyalin dan menempelkan skrip ke alur kerja baru yang Anda buat. Anda dapat memanggil AppleScript asli dari dalam alur kerja, sebagai gantinya:

on run {input, parameters}

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

end run
Dov
sumber