2016-08-18 12 views
0

名前を使用してサーバーにpingを実行できる場合は「smb://」を使用し、オフサイトの場合は「https://」を使用してドライブをマウントする、AppleScriptでシェルスクリプトのエラーを無視する

私たちは現在、smb経由で接続されていない限り、Macがpdfs、docsなどを開くことができないこの問題を抱えています。私たちがそれを理解するまで、これは単なるバンダイです。 ログイン項目のドライブに両方の接続を追加したくない場合は、ユーザーにエラーが表示されるためです。このコードで

問題があるMacは弊社のサーバーにpingを実行できない場合、スクリプトは単にエラーを停止し、スロー、

アクション「ファイル名を指定して実行AppleScriptは、」エラーが発生しました。 ping:cvm62vを解決できません:不明なホスト

「エラーが発生しました」などと私は混乱しましたが、これについてはほとんど分かりませんので、何が間違っているのか分かりません。

-- (0) Check to see if there server exists by pinging it 
 
set max_retry to 60 
 
set k to 0 
 
repeat while (do shell script "ping -c 1 cvm62v") contains "100% packet loss" 
 
\t delay 5 
 
\t set k to k + 1 
 
\t -- (2) It doesn't exist, mount the https volume 
 
\t if k > max_retry then tell application "Finder" 
 
\t \t try 
 
\t \t \t mount volume "https://my.server.edu/shared/" 
 
\t \t \t delay 1 
 
\t \t end try 
 
\t end tell 
 
end repeat 
 
-- (2) It exists, mount the smb volume 
 
tell application "Finder" 
 
\t try 
 
\t \t mount volume "smb://cvm62v/shared/" 
 
\t \t delay 1 
 
\t end try 
 
end tell

答えて

0

あなたは、tryブロックであなたのDOシェルスクリプトを配置する必要があります。あなたのコードに基づいて、私はあなたが怒鳴るように、サブ機能「ServConnected」を使用することをお勧め:この場合

-- how to call the sub-function in the main program : 
set mytest to ServConnected("cvm62v") -- = true if 0% loss, else = false 


on ServConnected(ServName) 
try 
    set R to do shell script "ping -c 1 " & ServName 
    set SOK to (R contains "0.0% packet loss") 
on error 
    set SOK to false 
end try 
return SOK 
end ServConnected 

を、関数が0.0%のパケットロス場合はtrueを返します。あなたのネットワークがそれほど良くないのであれば、パケットの損失が20.0%のpingの結果はどうでしょうか?あなたはサーバーが接続されていると考えていますか?

また、サーバーがping要求に応答するように設定されている必要があります。たとえオンラインであっても、一部のサーバーはそうではありません。

関連する問題