检查与Applescript / Automator的有效互联网连接

时间:2012-11-05 01:07:39

标签: applescript action automator

我有一个Automator工作流程来ping服务器,并下载我经常使用的计划的最新副本。然后将此计划复制到我的保管箱,以便我可以在手机上查看。在工作流程下载最新计划之前,它会从dropbox中删除旧计划。

这很有效,除非我没有有效的互联网连接。当我没有活动的互联网连接时,工作流程仍然会打开Dropbox,删除旧计划,并尝试下载最新的计划。因为没有连接,所以不会下载任何内容。然后,如果我的连接变为活动状态,则空的保管箱将同步,并且计划将从我的手机中删除。

我正在尝试添加几行AppleScript代码来ping服务器以查看我是否有活动连接。如果我不这样做,那么等待大约5秒钟再次ping。我希望有5次ping尝试,此时如果我仍然没有活动连接,那么我想完全退出。

我对applecript很新,所以我对如何处理命令的错误感兴趣,在这种情况下,ping。如果命令“ping -o www.apple.com”失败,请等待5秒钟并重试ping。如果5次尝试失败,则完全退出。

2 个答案:

答案 0 :(得分:6)

也许是这样的?

repeat with i from 1 to 5
    try
        do shell script "ping -o www.apple.com"
        exit repeat
    on error
        delay 5
        beep
        if i = 5 then error number -128
    end try
end repeat
say "Connected"

答案 1 :(得分:4)

如果域不可用,上面的脚本会导致automator的applescript挂起。它可以在AppleScript编辑器中正常工作,如果你添加-t X,其中X是秒应该超时的秒数,否则它也将无限期地挂起。

repeat with i from 1 to 2
    try
        do shell script "ping -o -t 2 www.googleasda.com"
        exit repeat
    on error
        say "Couldn't connect"
        delay 2
        say "Error after delay 5"
        beep
        if i = 2 then error number -128
    end try
end repeat
say "Connected"