2013-02-25 47 views
6

Şimdiye kadar bulduğum tek fark: app.doScript tarafından çalıştırılan bir komut dosyası bir hata döndürürse, hatanın dosya ve satır numarası, dosya ve app.doScript çağrısının satır numarası tarafından geçersiz kılınır.

Bilmem gereken başka farklılıklar var mı?

İlk çalıştırma InDesign:

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

Sonraki bir komut dosyası çalıştırmak için bir toplu iş dosyası oluşturun:

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

Bu "call_doScript olduğunu

İşte yukarıdaki farkını gösteren örnek kod var. app.doScript'i çağıran jsx ".

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

Bu, bir önceki komut dosyası tarafından denir "called_by_doScript.jsx" dir:

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

toplu dosyasını çalıştırın ve bu sonucudur:

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 

Bildirim o Yukarıdaki hata yanlış. Hata, call_doScript'in 2. satırı değil, named_by_doScript'in 3. satırından kaynaklandı.

Şimdi $ .evalFile kullanmak için komut dosyaları değiştirmek ve biz bu sonucu elde: Hata artık doğru yerde bildirildiğini

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 

Bildirimi.


Düzenleme:

Ben seyrek belgelerine buldum. Bu benim soruma gerçekten cevap vermiyor, ancak farklı isteğe bağlı parametreleri açıklıyor.

doScript:Adobe InDesign CS6 Scripting Guide: JavaScript (direct link)
sayfa 16,

evalFile "doScript Yöntemiyle" Bakınız:Javascript Tools Guide: Adobe Creative Suite 5
Bkz sayfa 219

+1

Cevabı bilmiyorum, ancak app.doscript ile js dosyalarını ve vbs dosyalarını çalıştırabilirsiniz. – bgmCoder

cevap

6

$ .evalFile bir ExtendScript özelliği varken app.doScript InDesign tarafından uygulanır.

$ .evalFile

  • diğer hedef uygulamalar

uygulama içinde $ .stack

  • düşünün $ .includePath
  • işi sürdürmek yapar.doScript olabilir

    • geçiş argümanlar
    • dil değiştirme, örneğin, AppleScript
    • kullanım #targetengine kadarıyla bir de

    ama ...

    • doScript çağırır iç içe üzerine yazma argümanlar
    • desteklenen geri al/işlem modunu değiştirmek
    • diğer oturumları ele almak karmaşık kurulum 12'den fazla argüman geçtikten sonra hata ayıklamakta sorun yaşadım. doScript genelinde
    • tek bir adım bulduğunuz olarak, hata farklılık taşıma,

    Ayrıca sorun. İstisnalara göz kulak olun ...

  • İlgili konular