【发布时间】:2016-06-01 12:00:33
【问题描述】:
我制作了一个脚本,它每天获取当地时间,然后通过桌面上的代码为我指定的文件夹制作别名。一开始,它会询问现在是哪一天(通过列表)。它不起作用,因为即使我使用 launchd 每 5 分钟运行一次,它也会要求我提供列表。有没有办法每天存储变量,然后让它全天完成其余的工作?
我实际上已经结合了 AppleScript 和 Automator 来使其运行,所以我需要让 Automator 运行而不是 AppleScript。
我的 PLIST 代码
<?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>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>wallpaper.restart</string>
<key>ProgramArguments</key>
<array>
<string>PATH:TO:FILE</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>1</integer>
</dict>
</dict>
</plist>
我将不胜感激任何对我开始的指示,或任何可以提供帮助的东西。
谢谢
【问题讨论】:
-
正如您在相关问题中已经提到的,此代码在每天下午 1 点运行脚本(并且总是在计算机由于
RunAtLoad键启动时)但不是基于间隔的。要在 AppleScript/Automator 端保存状态,可以在属性中使用用户默认值或load/store script模式。keepAlive是干什么用的? -
@vadian 很抱歉回复晚了-感谢您的快速回复;)是的,您是对的,我错误地复制了错误的代码。在我的新代码中,我有新的更新。
-
再一次:你知道
keepAlive实际上做了什么吗? -
@vadian - 这意味着在用户使用计算机/登录时保持脚本活动/运行。对吗?
-
keepAlive仅影响具有运行循环的 UNIX 进程。脚本不是进程,所以keepAlive完全没有效果。
标签: macos applescript plist automator launchd