FC2ブログ

Mac automator + AppleScript

OSXからと思うが、Macコンピュータにautomatorという便利なソフトがついた。
その名の通り、オートメーション作成のプログラミング言語で、しかも文字いらず、マウスで機能の項目をドローするだけで書けるという便利なしろもの。日頃の簡単な手順、たとえばネットからダウンロードした写真(ほんとはいけないんだけどネ)を該当フォルダに移動するなど、ぼくもいくつか作成して使っているが、便利なプログラムを一つ紹介したい。

DVDの中味のリストを作るプログラムだ。

ぼくは撮影した写真はDVDに焼いて保存している。ポートレートは撮影後すぐDVDに焼くが、それ以外のスナップ写真はとりあえずMacのハードディスクに溜めておき、まとまったところでDVDに焼く。およそ一ヶ月分が1枚という見当。焼き終わるとそのDVDに入れた写真のリストを、あらかじめ作ってある「全リスト」の末尾に追加する。これまではいま焼いたDVDのリストを手書きで追加していたがいまはautomatorのプログラムで、チャッと一発でできる。
ただしautomatorだけでは出来ない部分があるのでAppleScriptを追加した。この連携もじつに楽ちんで助かる。Mac使いはみなさん自作AppleScriptをたくさんお持ちだろうから活用のチャンスも広がる。

DVDの中味の例はこんなぐあいになっている。

090101 正月風景、初詣
090111 京都旅行、夜の景観、お寺参り
090121 近くの公園散歩

頭の数字は日付別のフォルダ、次の項目はその日の内容別フォルダ、そしてそのなかに写真がずらーッと入る3段構造。
これを収めたDVDをセットし、「DVDindex」と名づけたautomatorを起動させると、この通りのリストがクリップボードにコピーされるのでそれを「全リスト」の末尾にペーストすればよろしい。

以下はautomatorのプログラム。

1 「選択された Finder 項目を取得」
2 「フォルダの内容を取得」(「見つかった各サブフォルダからも取得する」にチェック)
3 「AppleScript を実行」

on run {input, parameters}
 set i to 0
 set oneLine to ""
 set prevLine to ""
 set allList to ""
 repeat until i = (length of input)
  set i to i + 1
  set getLine to item i of input as text
  set orgDelimiter to AppleScript's text item delimiters
  set AppleScript's text item delimiters to ":"
  if length of text items of getLine is 3 then set oneLine to text item 2 of getLine
  if length of text items of getLine is 4 then set oneLine to text item 2 of getLine & tab & text item 3 of getLine
  if oneLine is not prevLine then
   set allList to allList & return & oneLine as text
   set prevLine to oneLine
  end if
  set AppleScript's text item delimiters to orgDelimiter
 end repeat
 allList
end run

4 「クリップボードにコピー」

1、2、4はautomatorにあらかじめセットされた機能項目をマウスで指定するだけで、じつは1、2、4だけでもリストは書ける。しかしこれだとフォルダじゃなくて全ファイル(つまり写真)のリストになっちゃうので、AppleScriptで写真はカット、フォルダだけをリストするようにしている。

AppleScriptの条件部分は、ぼくのフォルダのツリー構造に依存している。つまり、1行の構造が、「090101」という日付フォルダ、その下に内容フォルダがいくつかあり、各フォルダに写真が並ぶ、という3段構造、もしくは日付フォルダのなかに直接写真が入る2段構造のどちらかでないといけない(違うときは書き直してください)。

便利なプログラムだし、Mac使いなら誰でも簡単にできるので、よければお使いください。

スポンサーサイト




  1. 2009/05/26(火) 00:29:44|
  2. Mac program|
  3. トラックバック:0|
  4. コメント:0

Profile