上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑

AppleScript がひらがなとカタカナを区別してくれません(><) の続き。

Mac OS X 10.4.7 でのお話。
前回 t.b.d.w さんに教えてもらった is in を使う方法を応用すると、exists や every item of ... も do shell script で代替せずに書くことができます。ちょっと長くなりますけど。

デスクトップフォルダに「ガンバ.txt」という項目があれば true を返す

tell application "Finder"
set itemList to (every item of (path to desktop folder) whose name is "ガンバ.txt") --デスクトップフォルダにある「ガンバ.txt」または「がんば.txt」という名前の項目をリストに。
if itemList is not {} then --リストが空でなければ。
set existsBool to {}
repeat with curItem in itemList
--itemList の項目一つ一つに対してカタカナの「ガンバ.txt」かそうでないかを判別する。
set bool1 to (name of curItem) is in "ガンバ.txt"
set bool2 to "ガンバ.txt" is in (name of curItem)
set existsBool to existsBool & ({bool1, bool2} = {true, true})
--「ガンバ」であって「がんば」でない項目があれば existsBool に true が入る。
end repeat
if existsBool contains {true} then
--if existsBool is true then という書き方ではダメっぽい。
return true
else
return false
end if
else --デスクトップフォルダに「ガンバ.txt」も「がんば.txt」もなければ。
return false
end if
end tell

デスクトップフォルダ内で名前に「ガンバ」を含む項目をリストにする

tell application "Finder"
set testList to (every item of (path to desktop folder) whose name contains "ガンバ")
set finalList to {} as list
repeat with curItem in testList
if ("ガンバ" is in (name of curItem)) then
set finalList to finalList & {contents of curItem}
end if
end repeat
end tell

ところで

二番目のスクリプトの
set finalList to finalList & {contents of curItem}
という部分、
set finalList to finalList & (curItem as alias)
でいいんじゃないの? と思われるかもしれませんが、実は as alias にはちょっとした問題がありまして。
おもろい、めずらしいアップルスクリプト発表会 6 (688-704)
要するに
(シンボリックリンク of folder ... of folder ...) as alias
はオリジナルの alias になってしまうという(((((((( ;゚Д゚)))))))
Finder 上ではエイリアスファイルとして扱われているとは言え結局はリンクなので、これが「不具合」なのか「仕様」なのか私には判断できませんが、Finder を操作して項目に変更を加えるような AppleScript を書く上で注意しなければならない点であるのは確かです。
でもまあ、
(シンボリックリンク of folder ... of folder ...) as Unicode text
という書き方もできるし、自分ではシンボリックリンクなんか使ってないから別にいっか (いや……) 。

スポンサーサイト

07/30|AppleScriptコメント(0)トラックバック(0)TOP↑
この記事にコメント
名前:
コメントタイトル:
メールアドレス:
URL:
コメント:

パスワード:
管理人だけに表示:
管理者にだけ表示を許可
この記事にトラックバック
プロフィール

AquaBowler

  • Author:AquaBowler
  • 現在の Mac 環境:
    iBook Late2001
    Mac OS X 10.4.11
フリーエリア
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
del.icio.us
feed meter

RSS feed meter for http://kotoerisan.blog16.fc2.com/

FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。