AppleScript再勉強

2014年6月19日AppleScript,Mac

最近、次のAppleScriptを書いてみました。

この時は、Webに散らばっている情報を元に、組み上げました。

以前、AppleScriptの勉強をしました。

この時は、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を書こうとすると、次の問題は、依然として残っています。

Posted by お市のかた