AppleScript で遊びを勉強し始める
先日書いたファイルのカタログを作成するもの が AppleScript で作れないかなと思い、ちまちまと調べながら Script Editor と格闘。やることは
- 対象となるフォルダを指定して
- カタログ情報の出力先を指定して
- find TARGET
- 結果を受け取ってリストにして
- リストに上がってるファイルに対して順番に情報を取得して、それを付加して
- ファイルに書き出す
という流れになるんだけど、2 と 5 の、要するにファイルの書き出しがよく分からないというか今のところうまく行かない(すでに開かれているだの、開かれていないだの、目的に合致した状態にならない。)。そこを無視すると一応できたんだけど、結果が今のところダイアログにしか出せなくて、まったく使いものにならない(画面に収まらない)。
初めての AppleScript の感想は、
- 基本の構文が英文ライク(な end 構文)でタイプ量が多い
- フリーフォーマットでないというか、複数行に気楽に分けて記述できない
- 暗黙の変数 Result に頼りまくりなのは Perl や Ruby のようでもあるけど、あんまり気持ちよくない(Result を壊さないようにするためにスクリプトの記述順序に気を使う)
- OS X での AppleScript は do shell script 命令のおかげでものすごく楽ができそうだ
- AppleScript 内ではパスは Classic 風に扱うが、POSIX パスと簡単に相互変換できるので助かる
- 他の言語でポピュラーな文字列処理の関数(命令?)がない1ので、その辺も全部外部のコマンドに頼ってしまいそうだ(ファイルの出力も do shell script でリダイレクトしたら?と言われたが、さすがにちょっと躊躇している。)
- しかしいかにも UI をかぶせただけって感じになってしまうといささかかっこ悪いので、AppleScript Studio が使いこなせると気持ちよさげ
- とりあえず Inerface Builder も動かしてみたけど、いやぁ Aqua な UI やメタルな UI ができてるよー。かっこいいよー。見た目がいいとモノがよさげに見えるから不思議だよー。
- 逆にコマンドラインで AppleScript を使うのも便利そう。それも可能らしいけどまだよく分からない。
なんだか可能性はずいぶん広がった気がする。
まったくないわけじゃないけど、自然言語のような書き方を目指しているのですごくまどろっこしい。 ↩