AppleScriptでマウントしているディスクをイジェクトする場合の注意です。まず、ディスク名があらかじめ分かっているのなら、Finderの「Put Away」命令がそのまま使えます。たとえば次のように書いてみて下さい。
tell application "Finder"
put away disk "Untitled"
end tellこれで「Untitled」という名前のディスクがEjectされます。
Finderには「Eject」という命令もありますが、これはEjectされたディスクの「影」がデスクトップに残ってしまうので普通は使えないと思います。
ディスク名が分からない場合はちょっとだけ複雑です。常にマウントしておきたいディスクは、Ejectの対象から除外しなければなりません。FinderでDiskの「ejectable」属性を取得し、これがtrueであれば「put away」する、というのが一番簡単な方法だと思います。要するに、Ejectできるディスクは全部Ejectしてしまおうというスクリプトですね (^ ^;)
tell application "Finder"
set DiskList to every disk
repeat with aDisk in DiskList
if ejectable of aDisk then
put away aDisk
end if
end repeat
end tellただこの方法は、「ejectableだけどマウントしておきたいディスク」があると使えません。こういう場合は、Ejectしないディスクの名称をあらかじめ登録しておくと良いでしょう。
property pUnejectDisks : {"My Disk"}
tell application "Finder"
set DiskList to every disk
repeat with aDisk in DiskList
if (ejectable of aDisk) and not (pUnejectDisks contains name of aDisk) then
put away aDisk
end if
end repeat
end tell上の例では、「My Disk」という名前のディスクを除いて、イジェクト可能なディスクを全てイジェクトします。
ディスクのイジェクトそのものはAppleScriptから扱う機会があまりないのですが、キーマクロユーティリティーなどと組み合わせると結構便利かもしれません。