如何重复或循环一个AppleScript

时间:2015-03-30 11:55:03

标签: email loops applescript repeat

我正在寻找一个选项来为Apple邮件中的所有未读邮件上色,我找到了以下脚本

tell application "Mail"

set background color of (messages of inbox whose read status is false) to red --unread
set background color of (messages of inbox whose read status is true) to none --default read

end tell

我将此脚本添加到邮件规则中,该规则适用于每条邮件,然后它几乎完美无缺。唯一的问题是它只能工作一次。因此,如果我收到一条新消息,而不是脚本没有注意到它(因此它不是红色,只是粗体),或者如果我读了一封电子邮件,那么它仍然是红色的。 请有人帮助我,脚本将循环运行,或者脚本将每秒运行。

仅供参考,我是一个Windows用户(mac对我来说真的很新)我正在寻找一个预定的任务选项,但我没有在我的Mac上找到这么简单的事情。

1 个答案:

答案 0 :(得分:4)

您可以通过多种方式运行计划任务。 Apple建议使用“launchd”代理。只需google“launchd tutorial”就可以获得很多例子。

基础知识是这样的...你创建一个plist文件(带有.plist文件扩展名的xml文本文件),无论你想要什么指令,都把它放在〜/ Library / LaunchAgents文件夹中。教程将向您展示如何创建许多不同类型的plist文件。将plist添加到该文件夹​​后,请注销/登录以使其生效。要禁用plist fie运行,请将其从文件夹中删除并注销/登录。就这么简单。

作为您的特定请求的示例,这个将每隔60秒运行一次AppleScript ...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.myName.myProgramName</string>
    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>/path/to/applescript.scpt</string>
    </array>
    <key>StartInterval</key>
    <integer>60</integer>
</dict>
</plist>

所以在那个plist示例中,您只需要将值放在“com.myName.myProgramName”,“/ path / to / appcriptcript.scpt”和“60”中,这是运行applescript的秒数。

注意:您应该为plist文件命名与“com.myName.myProgramName”相同的名称,并将“.plist”作为其文件扩展名。

祝你好运。