我该如何定期运行我的AppleScript

时间:2016-06-01 12:00:33

标签: macos applescript plist automator launchd

我制作了一个脚本,每天都会获取本地时间,然后通过桌面上的代码创建我指定的文件夹的别名。一开始,它询问它是哪一天(通过列表)。它不起作用,因为即使我每隔5分钟使用launchd运行它,它也会询问我的列表。有没有办法每天存储变量,然后让它在一天中完成其余的工作?

我实际上已经将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 个答案:

答案 0 :(得分:0)

要以某个间隔运行脚本,您可以使用看起来像这样的.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>Label</key>
    <string>com.mycompany.myScript</string>
    <key>Program</key>
    <string>/Applications/myScript/myScript.app/Contents/MacOS/applet</string>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
  <key>StartInterval</key>
  <integer>600</integer>
</dict>
</plist>

将600更改为您希望运行的任何秒数,例如每5分钟300次。

要将数据写入.plist文件以便随时访问它,您可以使用类似的内容......

do shell script "defaults write com.mycompany.myApp MyInfo '" & theInfo & "'"

然后阅读您使用此类代码的信息......

set myPref to do shell script "defaults read com.mycompany.myApp MyInfo"

最后,我不确定您是否需要&#34;列表&#34;,您可以使用与此类似的脚本获取日期......

do shell script "date \"+%Y-%m-%d\""

我在此示例中选择的格式为2016-06-01,但您可以通过在date命令后更改字符串将格式信息更改为您喜欢的格式。有关详细信息,请参阅手册页以获取更多信息,或查看here