Jedyna różnica, którą znalazłem do tej pory: Jeśli skrypt uruchamiany przez app.doScript
zwraca błąd, plik i numer linii błędu są nadpisywane przez plik i numer linii połączenia app.doScript
.
Czy są jakieś inne różnice, o których powinienem wiedzieć?
Oto przykładowy kod, który demonstruje powyższą różnicę:
Pierwsze uruchomienie programu InDesign:
c:
cd "C:\Program Files\Adobe\Adobe InDesign CS6 Server x64"
InDesignServer.com -port 12345
pause
Następny utworzyć plik wsadowy do uruchomienia skryptu:
c:
cd "C:\Program Files\Adobe\Adobe InDesign CS6 Server x64"
sampleclient -host localhost:12345 -server "C:/doscript_vs_evalfile/call_doScript.jsx"
pause
To „call_doScript. jsx ", który wywoła 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;
}
To "called_by_doScript.jsx", który nazywany jest przez poprzedniego skryptu:
app.consoleout("Running called_by_doScript.jsx");
// Produce error
var a = b;
Uruchom plik wsadowy i jest to wynik:
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
Zauważ, że powyższy błąd jest nieprawidłowy. Błąd został spowodowany przez linię 3 wywołaną _by_doScript, a nie linię 2 call_doScript.
Teraz zmodyfikować skrypty używać $ .evalFile, a my dostać ten wynik:
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
Zauważ, że błąd został już zgłoszony w odpowiednim miejscu.
Edit:
znalazłem rzadki dokumentacji. To tak naprawdę nie odpowiada na moje pytanie, ale opisuje różne opcjonalne parametry.
doScript:Adobe InDesign CS6 Scripting Guide: JavaScript (direct link)
Patrz strona 16, "za pomocą metody doScript"
evalFile:Javascript Tools Guide: Adobe Creative Suite 5
Patrz strona 219
Nie znam odpowiedzi, ale zaryzykowałbym to za pomocą app.doscript, można uruchamiać pliki js oraz vbs. – bgmCoder