iCal不再运行脚本?


12

我有一些AppleScripts形式的自动化任务,我计划通过iCal事件将其整夜运行。仅在“事件发生前0分钟”将事件设置为“运行脚本”,然后选择要运行的各种脚本。

但是,自从升级到Mountain Lion以来,“运行脚本”现在只是“打开文件”,并且脚本没有运行,它们只是在AppleScript编辑器中打开。

我尝试将脚本编译到应用程序中,以查看是否可以选择要打开的脚本,但是无法从事件中选择它们(它们显示为灰色)。

  1. 如何获取日历来运行脚本?
  2. 相反,是否有更好的方法来安排脚本运行?

Answers:


10

我写了一个有关安排作业的问题答案,该作业可以为您解决一些问题。尽管与进行中相比,这主要是一次休假。

如果您正在进行一项工作,就像您通过iCal安排的那样,launchd也可以很好地工作。

但是,如果您想要完全替代与iCal / Calendar相似的东西,这听起来像是在Apple Discussions板上的这篇出色文章解释了如何使用Automator的“ Calendar Alarm ”。一位用户甚至说,这种新方法更易于使用。我个人认为,借助Automator的强大功能,它还增加了新的功能。

从该站点:

这是一个对我有用的解决方案:

  1. 在Automator中,创建一个日历警报
  2. 从库窗格中选择实用程序
  3. 选择并将“运行AppleScript”拖到工作流区域
  4. 将AppleScript复制/粘贴到“运行AppleScript”框中
  5. 保存新创建的日历警报
  6. 打开Calendar.app,创建一个新事件
  7. 选择Automator日历作为参考日历
  8. 选择警报的“打开文件”,然后选择在Automator中创建的文件。默认情况下,iCal是选择“打开文件”时出现的文件。
  9. 将其更改为您创建的Automator应用程序的名称。
  10. 如果未显示文件名,请选择其他。

在此处输入图片说明

用户也将一些屏幕快照附加到他们的帖子中,但是我包括了需要在Automator中选择的屏幕快照。


1
看起来很棒!今晚它将通过我的任务进行测试,但是看起来它会出色地工作。关于所概述步骤的一个有趣注释,似乎是对它们的更新(我可能不知道Mountain Lion可能是新的)。在Automator中保存“文件”时,没有选择将其实际保存为文件。(毫无疑问,苹果公司努力摆脱文件系统。)它只是用一个名称保存,仅此而已。日历一经保存,便会自动处理一个自动创建的事件。我只需要调整时间并为活动设置重复次数。
大卫,

4

看来Apple并没有将“运行脚本”功能从iCal转移到Mac OS X 10.8(又名Mountain Lion)中的Calendar中。

您可以通过多种方式安排应用程序在Mac OS X上运行。

内置调度工具

首选的内置调度方法是使用launchd(启动守护程序)。要使用它,launchd请创建启动的工作单并将其放置在~/Library/LaunchAgents/文件夹中。

cron在Mac OS X上可用,但不再推荐。但是,有许多时间表不能由cron和表示launchd

苹果发布的文档是一个很好的起点。

第三方计划工具

如果您需要图形界面或更多功能,则可以使用第三方应用程序。我公司开发电源管理器 ; 还存在其他解决方案。


您可以通过添加足够的StartCalendarInterval字典来表示类似于cron的时间表。
Lri 2012年

1
cron的调度语言非常强大。可悲的是,如果不枚举和测试每一分钟,则很难准确地预测提供相同功率的功能。这是不再建议使用cron的原因之一,它需要轮询。启动后可以调度任务而无需轮询。
格雷厄姆·米尔恩

0

jmlumpkin的回答很明确,但是您可以自己轻松完成。正如我在博客文章中所述,您无需将脚本复制并粘贴到您创建的新工作流程中。您可以从工作流内部调用原始AppleScript,而不是:

on run {input, parameters}

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

end run
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.