日々適当

hibitekitou

メモ:AppleScript

mac |2007-06-19
ちょいと調べ物をしていて、知った事をメモ。

まずは起動ディスク以外をアンマウントする方法。アップルにまさにずばりな記事がありました。
tell the application "Finder" to eject (every disk whose ejectable is true )

これは、任意のディスクをアンマウントするってことには使えないので、それじゃ、認識されているボリュームのリストを得る方法はというと、ターミナルから

diskutil list

でいいらしい。
例えば、この結果、
/dev/disk0
   #:                   type name               size      identifier
   0: Apple_partition_scheme                    *232.9 GB disk0
   1:    Apple_partition_map                    31.5 KB   disk0s1
   2:              Apple_HFS MacOSX             232.8 GB  disk0s3
/dev/disk1
   #:                   type name               size      identifier
   0: FDisk_partition_scheme                    *372.6 GB disk1
   1:              Apple_HFS HDD01          250.0 GB  disk1s1
   2:              Apple_HFS HDD02       122.6 GB  disk1s2
とか得られたとすると、

diskutil unmount disk1s1

でHDD01を

diskutil unmount disk1s2

でHDD02をアンマウントできる、そうな。

もっとも、一番上のAppleScriptからのやり方に準じるなら

tell application "Finder" to eject disk "HDD01"

になります。で、起動ディスクをのぞいたマウントされているディスクのリストを得るなら、
set mountedDisks to getMountedDisk()
set mountDiskName to ""
repeat with mountedDisk in mountedDisks
	set mountDiskName to mountDiskName & mountedDisk & ","
end repeat
display dialog mountDiskName

on getMountedDisk()
	tell application "Finder"
		set diskList to every disk
		set extDiskList to {}
		set startupdiskname to name of startup disk
		repeat with diskItem in diskList
			if ((name of diskItem) ≠ "Network") and ((name of diskItem) ≠ "Servers") and ((name of diskItem) ≠ startupdiskname) then
				set extDiskList to extDiskList & name of diskItem
			end if
		end repeat
	end tell
	return extDiskList
end getMountedDisk

こんなかんじかなぁ。問題は同じ名前のネットワーク上のボリュームをマウントしている時、その区別が出来なさそうってことなんだけどね…。んー、どうしよ。
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。