// 雑記 [AppleScript][Illustrator] Collect For Output を修正 "); } }

雑記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[AppleScript][Illustrator] Collect For Output を修正

神速Illustrator発売されましたね!
様々なTip'sが掲載され作業の効率化に繋がっているのではないでしょうか?

さて、Chapter 07 自動化の神速テクニックの中で『Collect For Output』が紹介されていますが、その中に気になる記載が…
「0」「00」「000」「0000」などのファイル名が配置されていると一つしか収集されない。

知らなかった〜!
では修正しましょう。



if not ((file myfilename   of   myillfilecontainer  ) exists) then

ここがきちんと値を返してくれないみたいなので書き直し。

以下のハンドラを差し替えれば上記の様なファイル名も収集できるようになると思います。


on collectArtToLocal(myitems, thefilepath)

tell application "Finder" to set myillfilecontainer to container of thefilepath

repeat with myitem in myitems

tell application "Adobe Illustrator" to set myFile to (file path of myitem)

tell application "Finder"

set myfilecontainer to (container of myFile)

set myfilename to (name of myFile)

if myfilecontainer is not myillfilecontainer then

try

((myillfilecontainer as unicode text) & (myfilename as  unicode text )) as alias

on error

with timeout of 60 * 6 seconds

set mynewfile to (duplicate myFile to myillfilecontainer)

end timeout

end try

end if

end tell

end repeat

end collectArtToLocal



CC版のCS6からはパッケージ機能も付いたので今更このScriptを使わなくてもいいような気もしますが……
それに、収集だけで考えたらもっと高速に動作するものもありますしね。こちらのやあちら(2014-01-28現在10.9未対応)の等々……。

でも〜
せっかくのAppleScript。収集させるだけじゃもったいないので自分の使いやすいように改造してみましょう!
まずは、余計な保存をしないようにするとか、ドラッグ&ドロップで動くようにしてみるとか、複数ファイル対応にしてみるとか……



2014-02-10 追記!!

以下の行で不具合が起こる場合があります。
stringだと正しくパスが返って来ない事があるため、ファイルがコピーできずエラーを起こします。



(( myillfilecontainer as string ) & (  myfilename  as string )) as alias


(( myillfilecontainer as unicode text ) & (  myfilename  as unicode text )) as alias

そういえば、そんな不具合があったなと言われてから思い出しました……
参考にした方がいらっしゃったら申し訳ないことです。

テーマ:プログラミング - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://md5500.blog.fc2.com/tb.php/21-021f510b
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。