AppleScript再勉強
最近、次のAppleScriptを書いてみました。
- Finderのbackground pictureを設定するAppleScript: プラスα空間 (2014年5月14日)
この時は、Webに散らばっている情報を元に、組み上げました。
以前、AppleScriptの勉強をしました。
- AppleScriptを書いてみました: プラスα空間 (2009年1月30日)
この時は、AppleScriptについて解説されている、いくつかのウェブサイトを参考にさせていただきました。ありがとうございます。
なのですが、灯台下暗しと言うか、Appleに、AppleSiteの詳細が載っていました。非常にわかりやすいです。
ファイルのフルパス(POSIX PATH)から、Appleスクリプトでファイルの拡張子前後を取り出す方法がわからず、Shell(Perl)を呼び出して、無理矢理取り出していました。
[as]
— Copyright (c) 2014 webmaster@oichinote.com
— Created on 2014-05-16
set dmgOrig to (POSIX path of (choose file with prompt "Choose a dmg:" of type "dmg")) as text
set noExt to do shell script "echo " & dmgOrig & " | perl -ne '$_ =~ m/(.*)\\./; print $1;’"
set fileExt to do shell script "echo " & dmgOrig & " | perl -pe 's/.*\\.//’"
display dialog "noExt:" & noExt & linefeed & "ext:" & fileExt
[/as]
拡張子".dmg"を持つファイルを選択し、そのファイルの、拡張子前後で切り分けます。
chooseファイルに’of type “dmg"'を付けて、dmgだけを選べる様にしました。
AppleScriptの中から、Perlを呼び出して、拡張子前後で分割しています。その結果、次の様になります。
簡単なのですが、あまり、しっくり来ません。
上記、Appleの資料を見ていたら、"text item delimiters"と言う物がある事に気がつきました。それを使って書き直した物が、次のスクリプトです。
[as]
— Copyright (c) 2014 webmaster@oichinote.com
— Created on 2014-05-16
set dmgOrig to (POSIX path of (choose file with prompt "Choose a dmg:" of type "dmg")) as text
set AppleScript’s text item delimiters to {"."}
set noExt to (text 1 thru -2 of (every text item of dmgOrig)) as string
set fileExt to last text item of dmgOrig
display dialog "noExt:" & noExt & linefeed & "ext:" & fileExt
[/as]
AppleScriptの中で完結していて、結果は、全く同じです。
でも、各種アプリを操作する様な、本格的なAppleScriptを書こうとすると、次の問題は、依然として残っています。
- AppleScriptの難しさ: プラスα空間 (2009年2月6日)
ディスカッション
コメント一覧
まだ、コメントがありません