重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

現在applescriptにて自動マウントのscript?挑戦中です。

tell application "Finder"
try
mount volume "afp://●"
delay 10
end try
end tell

のように作成したのですが、事前に変数aURLにアドレス文字列を設定して、その変数aURLを●に代入したいのですがget aURLとかset aURL等試しているのですがうまくいきません。
変数をどの様に呼び出すと良いのでしょうか。
よろしくお願いします。

A 回答 (2件)

質問がよく分からないのですが、



tell application "Finder"
try
set aURL to "192.168.1.27"
mount volume "afp://" & aURL as string
delay 10
end try
end tell

って事ですか?

この回答への補足

更に進めて、たまたまサーバが用意できていなかった場合、接続を中止するように記述してみました。

tell application "Finder"
with timeout of 3 seconds
mount volume "afp://" & aURL as string
end timeout
end tell

しかし、これでは不十分のようでした。
タイムアウトでscript自身のタイムアウトメッセージが出てしまいました。
また、タイムアウトでscriptのエラーメッセージが出ている裏で、継続して接続しようとしています。
接続動作を中止し、そのまま終了または次動作に移行出来れば理想なんですが。

補足日時:2010/01/20 20:17
    • good
    • 0
この回答へのお礼

有難うございます。
接続できるようになりました。
今まで文字列を代入や挿入といった考えかたしか出来ていませんでした。
文字列を繋げるということだったんですね。

お礼日時:2010/01/20 19:07

> 接続動作を中止し、そのまま終了または次動作に移行出来れば理想なんですが。



これは結構な難問です。一つの策として、

tell application "Terminal"
do script "mkdir /Volumes/MountPoint"
do script "mount_afp -i afp://username:password@192.168.1.27/VolumeName /Volumes/MountPoint"
end tell

とすれば、192.168.1.27 の VolumeName というボリュームをマウントしに行きます。相手のマシンが存在しない場合には、ターミナルのシェルはそのままエラーが出るまで数分間待ちますが、AppleScript の方はマウントの成功失敗に関わらずすぐに制御が戻るので、次のステップに進めます。

シェルコマンドを実行するスクリプトには do shell script がありますが、こちらはエラーが帰ってくるまでスクリプトが止まるので、mount コマンドを実行するのと同じ事になります。
    • good
    • 0
この回答へのお礼

いろいろありがとうございます。
まずは教えていただいたscriptを試しながら、勉強していきたいと思います。
マウス操作だと、「サーバへ接続」、「アドレス入力」、「繋がらないようだと×印を押してキャンセル」と、至って簡単な操作なんですけど、scriptで再現すると、ここまで高度で難問とは思ってもいませんでした。

お礼日時:2010/01/27 02:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!