プロが教えるわが家の防犯対策術!

IllustratorCS3に付属でついている、ScriptのCollect for Outputで画像を収集した際に、ファイル名が仮に「00」「000」「0000」のファイルがあると、そのファイルの中の一点しか収集しません。
おそらく、0がいくつ続いていてもファイル名が同一と判断されていると思うのですが、Scriptのどの部分を書き換えれば、それぞれ別ものとして判断されるのでしょうか?
それともこのScriptではそれらは収集出来ないのでしょうか?
DTPをしているのですが、非常に困っています。
Scriptに関しては初心者です。
よろしくお願いいたします。
(タイムアウト等の問題はScript書き換えで解決済みです)

A 回答 (4件)

とりあえず AppleScript のみで書き換えてみました。


最後の collectArtToLocal ルーチンを置き換えてみてください。

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 myfilename to (name of myfile)
set folderContent to every item of folder myfolder
repeat with myFileItem in folderContent
if (myfilename = (name of myFileItem)) then
set matchFlag to 1
exit repeat
else
set matchFlag to 0
end if
end repeat
if (matchFlag = 0) then set mynewfile to (duplicate myfile to myillfilecontainer)
end tell
end repeat
end collectArtToLocal

ファイル書き出し先フォルダの全内容といちいち照合して確認していますので、ファイル数が多くなると時間がかかるだろうと思いますが、一応動くはずです。
    • good
    • 0
この回答へのお礼

出来ましたー!ありがとうございます!!
思ったほど時間もかからなかったので、このScriptを拝借させていただきます。
これでファイル名を細かくチェックしなくても済むようになりました。
本当にありがとうございました!
参考というか、完全に助けていただいてしまいましたが、ずっとわからなかった事が解決してすごくうれしいです!

お礼日時:2008/09/01 19:04

> 画像収集K



このソフトを使って 0.jpg, 00.jpg, 000.jpg が配置されたファイルから収集してみましたが、00.jpg しか回収されませんでした。同じルーチンを使ってそうですね。お使いの方は今まで問題なかったのでしょうか?
    • good
    • 0
この回答へのお礼

Scriptの書き換えを教えてくださっただけでなく、もうひとつのソフトについても検証していただいてありがとうございます。
私はなぜか画像収集Kが動かなかったので、結局使用できなかったのですが、確かに今まで誰も問題なかったのでしょうかね。
Sevenlessさんに教えていただくまで、色々な所で今回の質問と同じ現象がないかと探しまわったのですが見つけ出せませんでした。
確かに個人で使うなら、あまりこういった問題は起きにくいのかもしれませんが、仕事で使われている方なら同じような問題に直面しているのではないかと思うのですが……。
皆さん、シェアウェアソフトなどを使っておられるのかもしれませんね。
丁寧な回答本当にありがとうございました!

お礼日時:2008/09/01 19:12

フリーの画像収集Kがオススメです。



参考URL:http://jin-takashima.seesaa.net/
    • good
    • 0
この回答へのお礼

Kはダウンロードしたのですが、なぜか使えませんでした。
うまく認識しなかったんです、また機会があれば試してみます。
教えて下さってありがとうございます。

お礼日時:2008/09/01 19:06

スクリプトの最後から5行目前後



if not ((file myfilename of myillfilecontainer) exists) then
set mynewfile to (duplicate myfile to myillfilecontainer)
end if

の部分に問題があるようです。ここで、取り出したファイルが既に存在するかどうかをチェックしているのですが、どうもこの if file exists の判定にバグがあるようで、0の個数を区別してないみたいですね。0.jpg と 00.jpg, 000.jpg は同じファイルとして認識し、1.jpg, 11.jpg, 111.jpg は違うファイルとして認識します。

http://lists.apple.com/archives/applescript-user …
で同じ問題が報告されてます。

AppleScript 自体の問題のようなので解決は難しいのですが、
対症療法としては
(1)判定をスキップする:上記の部分の if not... の行と end if の行をコメントアウトしてしまうわけです。配置されたファイルが違うものばかりならこれで問題なく動きますが、同名のファイルが2個以上配置されているとエラーが出てスクリプトが停止します。
(2)ファイル名に 0 を含まないようにする:問題が起きるのはとりあえず 0 だけのようなので、配置するファイル名に気をつければ一応回避できます。

根治療法としては
(3)別のスクリプト系に書き換える:ファイルの存在確認の部分だけでも perl script などに書き換えて AppleScript から呼び出すようにすれば問題は解決するはずです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
自分のところで作るファイルはなるべく0を含まないようにと、作成していままで回避していたのですが、クライアントからのデータが「0」「00」「000」などで送られてくる事があるので大変困っていたのです。
同名のファイルは書類上に2個以上配置されている事も多々ありますので、(1)の回避方法はとれません。
Perl Scriptは……がんばって勉強してみます。

お礼日時:2008/09/01 16:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!