5

サーバーに ping を送信し、頻繁に使用するスケジュールの最新コピーをダウンロードする Automator ワークフローがあります。このスケジュールはドロップボックスにコピーされるので、携帯電話で見ることができます。ワークフローが最新のスケジュールをダウンロードする前に、ドロップボックスから古いスケジュールを削除します。

アクティブなインターネット接続がない場合を除いて、これはうまく機能します。アクティブなインターネット接続がない場合でも、ワークフローはドロップボックスを開き、古いスケジュールを削除して、最新のスケジュールをダウンロードしようとします。接続がないため、何もダウンロードされません。その後、接続がアクティブになると、空のドロップボックスが同期され、スケジュールが電話から削除されます。

サーバーにpingを実行してアクティブな接続があるかどうかを確認するために、数行のapplescriptコードを追加しようとしています。そうでない場合は、約 5 秒待ってから再度 ping を実行します。ping を 5 回試行したいのですが、その時点でまだアクティブな接続がない場合は、完全に終了したいと考えています。

私はapplescriptに非常に慣れていないので、コマンド(この場合はping)からのエラーを処理する方法に夢中になっています。コマンド「ping -o www.apple.com」が失敗した場合は、5 秒待ってから ping を再試行します。5 回失敗した場合は、完全に終了します。

4

2 に答える 2

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"
于 2012-11-05T02:00:33.380 に答える