В чем разница между app.doScript и $ .evalFile?

Единственное отличие, которое я обнаружил до сих пор: если скрипт выполняется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.jsx", который будет вызывать 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;
}

Это "named_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

Обратите внимание, что приведенная выше ошибка неверна. Ошибка была вызвана строкой 3 файла selected_by_doScript, а не строкой 2 call_doScript.

Теперь измените сценарии для использования $ .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: JavaScript (Прямая ссылка)
См. Стр. 16, «Использование метода doScript»

evalFile: Руководство по инструментам Javascript: Adobe Creative Suite 5
См. Стр. 219

Ответы на вопрос(1)

Ваш ответ на вопрос