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

24f*_*fos 5 applescript action automator

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

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

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

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

ada*_*one 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"
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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"
Run Code Online (Sandbox Code Playgroud)