我是一個相當新的程序員,所以請耐心等待。我正在嘗試一些相當先進的東西,但我喜歡挑戰。 :〜)我正在使用Adobe的ESTK(ExtendScript Toolkit)爲InDesign CS6編寫一個複雜的腳本。我經歷了大部分的教程,並且學到了很多東西,但我現在已經遇到了一堵牆。Javascript代碼打開子目錄中的幾個文件
我需要腳本來檢測某個文件夾是否符合某個標準,如果是,則深入該文件夾,計算其所有子文件夾並打開每個子文件夾中的每個.indd文件,反過來,每個人執行任務。我纔剛剛開始腳本今天這是我到目前爲止有:
var getDataDialog = app.dialogs.add({name:"Job Info"});
with(getDataDialog){
// Add a dialog column.
with(dialogColumns.add()){
// Create the order number text edit box.
var orderNumTextEditBox = textEditboxes.add({minWidth:80});
}
}
// Show the dialog box.
var dialogResult = getDataDialog.show();
if(dialogResult == true){
// Get the order number and put it in the variable "orderNum".
var orderNum = orderNumTextEditBox.editContents;
// Get the first three numbers of the order number and put it in "orderPrefix".
var orderPrefix = orderNum.substr(0,3);
// Remove the dialog box from memory.
getDataDialog.destroy();
// Store the folder prefix into "folderPrefix".
var folderPrefix = "/g/ ArtDept/JOBS/" + orderPrefix + "000-" + orderPrefix + "999/"
// Open the document with the order number.
var myDoc = app.open(File(folderPrefix + orderNum + " Folder/" + orderNum + ".indd"), true);
}
else{
getDataDialog.destroy();
}
因此,如果輸入的順序號爲「405042」,它看起來在「405000-405999」文件夾中,然後進入名爲「405042文件夾」的打包文件夾,然後打開裏面的.indd文件。麻煩的是,我們有時在一個文件夾中有幾個軟件包。例如,我們可能有:
405000-405999/405007/405007_N10/405007_N10.indd
405000-405999/405007/405007_C12/405007_C12.indd
405000-405999/405007/405007_Orange/405007_Orange.indd
我希望腳本依次打開每個文件,然後對它們執行一些任務。我確信這是可能的,但我只需要知道如何編碼它。如果您需要更多信息,請告訴我,我很樂意提供。謝謝!
您的主題已經非常複雜。所以沒有簡單的答案。你應該看看這些東西: JavaScript中的遞歸 http://www.codecademy.com/courses/javascript-lesson-205 ExtendScript中的文件 http://jongware.mit.edu/Js/pc_File。 html ExtendScript中的文件夾 http://jongware.mit.edu/Js/pc_Folder.html 希望能有所幫助。 – fabianmoronzirfas 2013-05-14 06:30:00
你可以畫出更多的目錄結構嗎? – 2013-05-14 13:15:33
謝謝你的鏈接,@fabiantheblind;我會盡快檢查出來,希望能夠學到更多。是的,這絕對是一個複雜的劇本,所以這是我的試火。 – Sturm 2013-05-15 14:24:18