iCal No Longer Run Script?


12

Tôi có một số tác vụ tự động dưới dạng AppleScripts mà tôi sẽ lên lịch để chạy qua đêm thông qua một sự kiện iCal. Sự kiện đơn giản sẽ được đặt thành "chạy tập lệnh" vào "0 phút trước sự kiện" và tôi sẽ chọn các tập lệnh khác nhau để chạy.

Tuy nhiên, kể từ khi nâng cấp lên Mountain Lion, "tập lệnh chạy" giờ chỉ là "tập tin mở" và tập lệnh không chạy, chúng chỉ mở trong AppleScript Editor.

Tôi đã thử biên dịch các tập lệnh thành các ứng dụng để xem liệu tôi có thể chọn những tập lệnh được mở không, nhưng chúng không có sẵn để chọn từ sự kiện (chúng bị mờ đi).

  1. Làm cách nào tôi có thể lấy Lịch để chạy tập lệnh của mình?
  2. Ngược lại, có cách nào tốt hơn để lên lịch cho các kịch bản chạy?

Câu trả lời:


10

Tôi đã viết một câu trả lời cho một câu hỏi về lập lịch công việc có thể giải quyết một vài vấn đề cho bạn. Điều đó chủ yếu là cho một lần một lần mặc dù so với liên tục.

Nếu bạn có một công việc đang diễn ra, như một công việc mà bạn đã lên lịch thông qua iCal, launchdcũng sẽ hoạt động tốt.

Nhưng nếu bạn muốn một sự thay thế hoàn toàn cho một cái gì đó tương tự như những gì bạn đã làm với iCal / Lịch, thì có vẻ như bài viết tuyệt vời này trên bảng thảo luận của Apple giải thích bằng cách sử dụng 'Báo thức lịch' của Automator . Một người dùng thậm chí còn nói rằng cách mới này thậm chí còn dễ sử dụng hơn. Cá nhân tôi nghĩ rằng với sức mạnh thêm của Automator, nó cũng thêm sức mạnh mới.

Từ trang web đó:

Đây là một giải pháp phù hợp với tôi:

  1. Trong Automator, tạo Báo thức Lịch
  2. Chọn Tiện ích từ khung thư viện
  3. Chọn và kéo Run AppleScript vào vùng quy trình làm việc
  4. Sao chép / dán AppleScript vào hộp Run AppleScript
  5. Lưu báo thức lịch vừa tạo
  6. Mở Calendar.app, tạo một sự kiện mới
  7. Chọn lịch Automator làm lịch tham chiếu của bạn
  8. Chọn Mở tệp để cảnh báo và chọn tệp bạn đã tạo trong Máy tự động. Theo mặc định, iCal là tệp xuất hiện khi bạn chọn Mở tệp.
  9. Thay đổi tên của ứng dụng Automator mà bạn đã tạo.
  10. Chọn Khác nếu tên tệp không được hiển thị.

nhập mô tả hình ảnh ở đây

Người dùng cũng đính kèm một số ảnh chụp màn hình vào bài đăng của họ, nhưng tôi đã bao gồm một ảnh chụp màn hình về những gì cần được chọn trong Automator.


1
Điều này có vẻ tuyệt vời! Nó sẽ được thử nghiệm với nhiệm vụ của tôi tối nay, nhưng có vẻ như nó sẽ hoạt động tuyệt vời. Một lưu ý thú vị về các bước được phác thảo, có vẻ như có một bản cập nhật cho chúng (có thể là mới đối với Mountain Lion, tôi không biết). Khi lưu "tệp" trong Automator, không có tùy chọn nào thực sự lưu nó dưới dạng tệp ở đâu đó. (Không có nghi ngờ gì về việc Apple di chuyển ra khỏi hệ thống tập tin.) Nó chỉ lưu với một cái tên và đó là nó. Và ngay khi lưu, Lịch sẽ được tập trung với một sự kiện được tạo tự động. Tôi chỉ phải điều chỉnh thời gian và đặt lặp lại cho sự kiện.
David

4

Có vẻ như Apple đã không thực hiện chức năng "Run Script" từ iCal đến Lịch trong Mac OS X 10.8, hay còn gọi là Mountain Lion.

Bạn có thể lên lịch cho các ứng dụng chạy trên Mac OS X theo một số cách.

Công cụ lập lịch tích hợp

Phương pháp lập lịch trình tích hợp ưa thích là sử dụng launchd (launch daemon). Để sử dụng, launchdbạn tạo vé công việc launchd và đặt chúng vào ~/Library/LaunchAgents/thư mục của bạn .

croncó sẵn trên Mac OS X nhưng không còn được khuyến nghị. Tuy nhiên, có nhiều lịch trình hơn có thể được đại diện bởi cronvà không phải bởi launchd.

Tài liệu giới thiệu của Apple là một nơi tốt để bắt đầu.

Công cụ lập lịch trình của bên thứ ba

Nếu bạn muốn có giao diện đồ họa hoặc nhiều chức năng hơn, có sẵn các ứng dụng của bên thứ ba. Công ty của tôi phát triển Power Manager ; giải pháp khác cũng tồn tại.


Bạn có thể biểu diễn các lịch trình giống như cron với launchd chỉ bằng cách thêm đủ từ điển StartCalWikiInterval .
Lri

1
ngôn ngữ lập kế hoạch của cron là đáng kinh ngạc và vô cùng mạnh mẽ. Đáng buồn thay, những gì cung cấp sức mạnh tương tự rất khó để dự đoán chính xác mà không liệt kê và kiểm tra mỗi phút. Đây là một lý do cron không còn được khuyến khích, nó yêu cầu bỏ phiếu; launchd có thể lên lịch các nhiệm vụ mà không cần thăm dò ý kiến.
Graham Miln

0

Câu trả lời của jmlumpkin là tại chỗ, nhưng bạn có thể tự mình làm nó dễ dàng hơn. Như tôi đã mô tả trong một bài đăng trên blog , bạn không cần phải sao chép và dán tập lệnh vào quy trình công việc mới mà bạn tạo. Thay vào đó, bạn có thể gọi AppleScript gốc từ bên trong quy trình làm việc:

on run {input, parameters}

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

end run
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.