以下のように編集、元のコピー: 半機能スクリプトを作成できました。私は、多くの不満を抱きながら、構文エラーがテキスト編集の印であることを認識しました。それはいくつかのファイルを再リンクし、通常はエラーで終了するという点で、半完成します。数回のループの後に "placedArtは存在しません"。私は、XMLがファイル内に存在するよりも多くの「stRef:filePath」を見つけるように感じています。例:2つのイメージを持つファイルは、それぞれ2回のファイルパスを検索します。任意のヒント?イラストレーターedit link filepath via javascript
var counter = 0;
var doc = app.activeDocument;
var x = new XML(doc.XMPString);
var m = x.xpath('//stRef:filePath');
if (m !== '') {
for (var i=0, len=m.length(); i < len ; i++) {
var link_path = m[i];
if (File(link_path).exists === false) {
link_path = link_path.split('/Projects').join('/Volumes/Projects')
link_path = link_path.split('O:').join('/Volumes/Projects');
link_path = link_path.split('P:').join('/Volumes/Projects');
link_path = link_path.split('\\SERVER').join('Volumes');
link_path = link_path.split("\\").join("/");
if (File(link_path).exists === true){
placedArt = app.activeDocument.placedItems[i];
placedArt.relink(new File (link_path));}
alert(File(link_path).fsName);
counter++;
}
};}
if (counter > 0) {
alert("Attempted to relink " + counter + " links");}
else {
alert("No links replaced");}
オーケーを投稿orginal、私は非常に経験の浅いXMLんだけど、私は、スクリプトを使用してAdobe Illustratorでリンクファイルパスの部分を編集しようとしています。以下は私がこれまで持っているものです:
var doc = app.activeDocument;
var x = new XML(doc.XMPString);
var m = x.xpath('//stRef:filePath');
if (m !== '') {
for (var i=0, len=m.length(); i < len ; i++) {
var link_path = m[i];
if (File(link_path).exists === false) {
var link_path2 = String(link_path)
link_path2 = link_path2.replace(‘%5C’, ‘/‘)
alert(File(link_path2));
}
};
}
これはエラーを返します:8構文エラー。 link_path2 = link_path2.replace( '%5C'、 '/')の行にあります。だから、このよう
link_path2 = 'cow';
として、link_path2を再定義しようとする試みを行います私は現在、XML typeofを返しlink_path varが再定義のための問題であるという事実を仮定すると、文字列に変換しlink_path2するlink_pathを変更していますまたは値を編集します。
最後の目標は、WindowsサーバパスからmacOSファイルパスにファイルパスを編集して、スクリプトが壊れたリンクを修正することです。私はこれを数時間探し、行き止まりを打ち続ける。
これをさらに詳しく調べて、これを私のものと混ぜてみる必要があります。私は実際には、配置されたアイテムとXMLの組み合わせを使って半機能バージョンを持っていました。私は編集する.fsname、.url、または.file.nameを持たない壊れたリンクのplacesItemsの問題に直面していました(警告は[配置されたアイテム]または未知数を示しています)。多分これはプラットフォームの問題の変更ですが、私は開いているファイルを再リンクしていました。未開封のファイルを再リンクする必要があります。残念ながら、ここのサーバーはクラスタFであり、まれに同じ2つのパスを含みます。 いずれにしても、あなたは私にテスト/探索の新しいルートを与えてくれました、merçibeaucoup。 – KernelPan1c