6

유일한 차이점은 지금까지 찾았습니다. app.doScript이 실행하는 스크립트가 오류를 반환하면 파일 번호와 행 번호가 app.doScript 호출의 파일 및 행 번호로 대체됩니다.

내가 알아야 할 차이점이 있습니까?

먼저 실행 인디자인 :

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; 
} 

이 이전의 스크립트에 의해 호출된다 "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_doScript의 2 행이 아니라 called_by_doScript의 3 행에서 발생합니다.

지금 $ .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를 사용하면 vs 파일뿐 아니라 js 파일도 실행할 수 있습니다. – bgmCoder

답변

6

$ .evalFile가 수정 ExtendScript 기능 동안이다 app.doScript는 InDesign에서 구현됩니다.

$ .evalFile는

  • 다른 대상 응용 프로그램

응용 프로그램에서 $ .stack

  • 고려 $ .includePath
  • 일을 유지한다.doScript 수

    • 패스 인자
    • 언어 변경, 예를 들어 애플 스크립트
    • 사용 #targetengine는 지금까지의

    하지만 ...

    • doScript 호출을 중첩 덮어 쓰기 인수
    • 지원으로 실행 취소/트랜잭션 모드를 수정
    • 다른 세션을 해결하기 복잡한 설정 나는 12 개 이상의 인수를 통과 한 후에 디버깅하는 데 어려움이있었습니다. doScript에서
    • 한 단계 씩 당신이 발견, 오류 처리 방식,

    또한 문제이다. 예외를 주시하십시오 ...