編輯,原標題如下: 我已經設法創建一個半功能腳本。我意識到,非常沮喪的是,語法錯誤是文本編輯的標記。它是半工作的,因爲它會重新鏈接一些文件,並且通常以一個錯誤結束,「經過幾次循環後,放置的藝術不存在」。我覺得XML找到了比文件中存在更多的「stRef:filePath」。例如:帶有兩個圖像的文件每兩次找到一個文件路徑。有小費嗎?插圖編輯鏈接文件路徑通過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");}
原單張貼
好吧,我非常缺乏經驗的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,如
link_path2 = 'cow';
我目前正在發生變化,link_path到link_path2將其轉換成字符串,假設事實link_path返回的typeof XML的變種是一個問題的重新定義,或編輯值。
最終目標是編輯從Windows服務器路徑到macOS文件路徑的文件路徑,以修復損壞的鏈接的腳本。我已經在這個上搜尋了幾個小時,並且一直在死路一條。
我得仔細檢查一下,並試着將它與我的混合。實際上,我使用了放置項和XML組合的半功能版本。我遇到了沒有.fsname,.url或.file.name編輯(警告顯示[已放置的項目] /或未知)的已損壞鏈接項的問題。也許這是平臺問題的改變,但我正在重新打開一個打開的文件,我將不得不嘗試重新鏈接未打開的文件。不幸的是,這裏的服務器是一個簇F,它很少涉及相同的兩條路徑。 無論哪種方式,你給了我一個新的測試/探索路線,merçibeaucoup。 – KernelPan1c