2010年1月17日日曜日

サブフォルダを再帰的に辿って、ファイルにナントカする

指定したフォルダに含まれるすべてのファイル (サブフォルダも含む) に対して、何かを行うというのはよくありますが、AppleScript で書くと、意外と面倒だったりします。

Automator なら一発です。

最初に指定するテンプレートは、「ワークフロー」です。ワークフローは、Automator を起動して、実行ボタンを押して動かします。

空のワークフローに、以下のアクションを追加します。

  • 「指定された Finder 項目を取得」アクションは、選択している GUI でファイルやフォルダを選択し、そのリストを次のアクションへ渡します。上の例では、2つのフォルダを選択しています。※
  • 「フォルダの内容を取得」アクションは、受け取ったフォルダに含まれるファイルやフォルダの一覧を取得します。ここでは、サブフォルダに含まれるファイルやフォルダも再帰的に取得してほしいので、「見つかったサブフォルダからも取得」にチェックを入れておきます。
  • 「Finder 項目にフィルタを適用」アクションは、受け取ったファイルやフォルダの一覧を、指定した条件でフィルタリングします。上の例では、拡張子とファイル名の 2つの条件を追加しています。「結果」ボタンを押して、何がヒットしたかを表示させています。4つのファイルのリストが次のアクションに渡されます。
  • 最後に AppleScript で実際に何をするかを書きます。input には、ファイルのリストが渡されます。parameter は、とりあえず無視で OK です。もし、この後、別のアクションを実行したいなら、run ハンドラで次のアクションに渡すデータ (ファイルのリストや、文字列) を返却してください。

AppleScript が使える人は、今日から Automator で幸せになれますよ。シェルスクリプト、Perl、Ruby、Python でも同様に書けます。

※ サービスやアプリケーション (ドロップレット) の形で作ると、ユーザによって起動時にフォルダが指定されますので、この部分は不要になります。

0 件のコメント:

コメントを投稿