2013-02-25 34 views
6

मुझे अब तक का एकमात्र अंतर मिला है: यदि app.doScript द्वारा चलाए गए एक स्क्रिप्ट में कोई त्रुटि आती है, तो फ़ाइल की फ़ाइल और लाइन संख्या app.doScript कॉल की फ़ाइल और लाइन संख्या द्वारा ओवरराइड की जाती है।

क्या कोई और अंतर है जिसके बारे में मुझे पता होना चाहिए?

फर्स्ट रन InDesign:

c: 
cd "C:\Program Files\Adobe\Adobe InDesign CS6 Server x64" 
InDesignServer.com -port 12345 
pause 

अगला एक स्क्रिप्ट चलाने के लिए एक बैच फ़ाइल बनाएँ:

c: 
cd "C:\Program Files\Adobe\Adobe InDesign CS6 Server x64" 
sampleclient -host localhost:12345 -server "C:/doscript_vs_evalfile/call_doScript.jsx" 
pause 

यह "call_doScript है

यहाँ नमूना कोड है कि इसके बाद के संस्करण का अंतर बताता है। जेएसएक्स ", जो app.doScript कॉल करेगा।

try { 
    app.doScript(new File("/c/doscript_vs_evalfile/called_by_doScript.jsx")); 
    "Success"; 
} 
catch (e) { 
    var sError = "Encountered " + e.name + " #" + e.number + " at line " + e.line + " of file " + e.fileName + "\n" + e.message; 
    app.consoleout(sError); 
    sError; 
} 

यह "called_by_doScript.jsx" है, जो पिछले स्क्रिप्ट के द्वारा कहा जाता है:

app.consoleout("Running called_by_doScript.jsx"); 
// Produce error 
var a = b; 

बैच फ़ाइल चलाने के लिए और इस परिणाम है:

02/25/13 13:30:03 INFO [javascript] Executing File: C:\doscript_vs_evalfile\call_doScript.jsx 
02/25/13 13:30:03 INFO [javascript] Executing File: C:\doscript_vs_evalfile\called_by_doScript.jsx 
02/25/13 13:30:03 INFO [script] Running called_by_doScript.jsx 
02/25/13 13:30:03 INFO [script] Encountered ReferenceError #2 at line 2 of file /c/doscript_vs_evalfile/call_doScript.jsx 
b is undefined 

सूचना है कि उपरोक्त त्रुटि गलत है। त्रुटि call_do_doScript की पंक्ति 3 के कारण हुई थी, call_doScript की पंक्ति 2 नहीं।

अब $ .evalFile उपयोग करने के लिए स्क्रिप्ट को संशोधित, और हम इस परिणाम मिलता है:

02/25/13 13:32:39 INFO [javascript] Executing File: C:\doscript_vs_evalfile\call_evalFile.jsx 
02/25/13 13:32:39 INFO [script] Running called_by_evalFile.jsx 
02/25/13 13:32:39 INFO [script] Encountered ReferenceError #2 at line 3 of file /c/doscript_vs_evalfile/called_by_evalFile.jsx 
b is undefined 

सूचना है कि त्रुटि अब सही स्थान पर सूचना दी है।


संपादित करें:

मैं विरल प्रलेखन पाया। यह वास्तव में मेरे प्रश्न का उत्तर नहीं देता है, लेकिन यह विभिन्न वैकल्पिक मानकों का वर्णन करता है।

doScript:Adobe InDesign CS6 Scripting Guide: JavaScript (direct link)
पेज 16,

evalFile "doScript विधि का प्रयोग" देखें:Javascript Tools Guide: Adobe Creative Suite 5
देखें पेज 219

+1

मुझे जवाब नहीं पता, लेकिन मैं app.doscript के साथ यह उद्यम करूंगा, आप जेएस फाइलों के साथ-साथ vbs फ़ाइलों को चला सकते हैं। – bgmCoder

उत्तर

6

$ .evalFile एक ExtendScript सुविधा है, जबकि app.doScript इनडिज़ीन द्वारा कार्यान्वित किया गया है।

$ .evalFile

  • बनाए रखने के अन्य लक्ष्य अनुप्रयोगों

अनुप्रयोग में $ .stack

  • पर विचार $ .includePath
  • काम करता है।doScript कर सकते हैं

    • पास तर्क
    • परिवर्तन भाषा, उदा AppleScript
    • उपयोग #targetengine जहाँ तक एक में

    लेकिन ...

    • नेस्ट doScript कॉल अधिलेखित तर्क
    • समर्थित के रूप में अन्य सत्र
    • पूर्ववत/लेन-देन मोड को संशोधित पता करने के लिए जटिल सेटअप मुझे 12 से अधिक तर्क पारित करने के बाद डीबग करने में परेशानी थी। doScript भर
    • एकल स्टेपिंग के रूप में आप पाया, त्रुटि से निपटने अलग

    भी मुसीबत है। अपवादों पर नजर रखें ...