フィルターの基本は「すべてを指定する」というものです。
tell application "Finder" set Obj to control panels folder end tell例えば、このようなスクリプトを実行してみましょう。変数Objには、「folder "コントロールパネル" of folder "システムフォルダ" of startup disk of application "Finder"」といったような、コントロールパネルフォルダの参照が収められるはずです。
では、次のようにするとどうなるでしょうか。
tell application "Finder" set Obj to every item of control panels folder end tellこのスクリプトでは、変数壱の中身は、コントロールパネルフォルダの中にある全ファイルの参照のリストになるのです。
ここで使われている「every 〜」というのが、フィルターの基礎となるものです。これは、
every《種類》of《調べる場所》
こんな形になります。また、everyを使わず、もっと簡単に《種類》の後に複数形のsをつけても同様のことができます。「items of control panels folder」という具合ですね。――例えば、
every folder of system folder
これで、システムフォルダの中にある全フォルダのリストが得られます。なかなか便利な機能ですね。
《対象となるもの》whose《条件式》
こんな形となるわけです。例えば、
tell application "Finder" make alias at desktop to every control panel of control panels folder whose name contains "設定" end tellこのようにしてみると、「設定」という文字列を含む全てのコントロールパネルのエイリアスがデスクトップに作成されます(さて、いくつできたでしょう?)。
ここでは「make alias at desktop to ××」という形でエイリアスを作ってます。その「作る対象」としてフィルターが使われています。「every control panel of control panels folder whose name contains "設定"」ということは、「every control panel of control panels folder」(「コントロールパネル」フォルダの中のすべてのコントロールパネル)の中で、「name contains "設定"」(nameに"設定"というテキストが含まれているもの)という条件に合うものを指定しているわけですね。
このように、条件を設定してやることで、その条件にあったものを全てまとめて扱えるようになる−−それがフィルターです。
フィルターは、この「条件式をいかに組み立てるか」がポイントとなるといってよいでしょう。