DTPab

印刷やデザイン、アドビ製アプリやスクリプトなど、雑多な技術ブログ

フォルダの中のinddファイルすべてを対象にスクリプトを実行する

というスクリプトを書いてみました。
最低限のエラー処理などは組み込んでいますが、しっかり検証していませんのでご利用は自己責任でお願いします。
できればinddファイルのバックアップなどは取っておいていただいたほうがいいかもしれません。

コード

gist.github.com

解説

var F = Folder.selectDialog("フォルダを選択してください");
main(F, "filePath", true);

基本的にはこれになります。
main関数の第一引数はフォルダオブジェクトです。このコードではFolder.selectDialogでフォルダをユーザーに選ばせていますが、決まっているならそのままフォルダオブジェクトを渡してしまってもいいです。
第二引数はinddファイルに対して実行させるスクリプトファイルへのパスです。文字列型で指定してください。
第三引数は実行後にinddファイルを保存して閉じるかどうか(真偽値)です。これをfalseにすると、スクリプトを実行したあとそのまま開いた状態(保存すらしてない)になります。

あとは特に難しいことはやってません。
気になったことがあればコメントいただいたり、Twitterで聞いたりしてください。

積み残し

tryブロックの中の処理がうまくいった場合(errorブロックに進まずにfinallyブロックに進んだ場合)というのは、どのように判断させるのがスマートなんですかね。
このコードではflag変数でなんかやってますが、まぁなんというかダサいなぁと……。
なにかいい方法があれば教えて欲しいです。