Feb 3, 2013

USB(略)するAppleScript(おまけ)

USB HDDなどをマウント/アンマウントするAppleScriptの落穂拾い。

前の記事だとdiskNamesという変数に操作対象のボリューム名を静的に書いておく必要があり、気分もよくなかったので、diskutil listの出力結果をパーズすればいいじゃんというアイディアを試してみた。

on multipleLinesToList(aText)
set textItemDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to ASCII character 13
set aList to text items of aText
set AppleScript's text item delimiters to textItemDelimiters
return aList
end multipleLinesToList

tell application "Finder"
set result to do shell script "diskutil list | cut -c 34-56 | awk '{sub(/[ ]+$/,\"\")}1' | awk 'NF' | grep -v '^NAME$'"
set resultList to multipleLinesToList(result) of me
repeat with aDiskName in resultList
try
disk aDiskName
on error
try
do shell script "diskutil mount '" & aDiskName & "'"
end try
end try
end repeat
end tell

もうね、ひどいもんですよ…。ロバストでもないしね…。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com