2011-03-09 214 views
1

我想執行一個JavaScript,返回一個像'GEORGE SMITH'這樣的字符串。我想閱讀這些信息,但是當運行這段代碼時,我得到:「指定的可執行文件不是有效的Win32應用程序」閱讀StandardOutput問題

我如何捕獲這些信息?我試圖從.bat調用javascript,但是我無法從那裏獲得輸出。誰能幫我?。

這是代碼:

{ 
    Process proc = new Process(); 

    ProcessStartInfo startInfo = new ProcessStartInfo(); 
    startInfo.CreateNoWindow = true; 
    startInfo.UseShellExecute = false; 
    startInfo.RedirectStandardOutput = true; 
    startInfo.FileName = "cardholder.js"; 
    startInfo.WindowStyle = ProcessWindowStyle.Hidden; 
    proc.StartInfo = startInfo; 
    proc.Start(); 

    nombreApellido = proc.StandardOutput.ReadToEnd(); 

    proc.Close(); 
    proc.Dispose(); 
} 

回答

2

JavaScript文件不是可執行,你不能運行它。

你需要運行WScript.exe的,並通過cardholder.js作爲命令行參數:

startInfo.FileName = "wscript.exe"; 
startInfo.Arguments= "cardholder.js"; 
+0

想不到一個.js命令行解釋器。 – CheeZe5

+0

好吧,我知道它,因爲我以前做過。腳本雖然沒有樂趣... – Aliostad

+0

它以這種方式工作,但哪種方式是讀取這些信息的最佳方式? using StandardOutput.ReadToEnd();或者我應該使用StreamReader ?. – NicoRiff

0

cardholder.js不是可執行。你的startInfo.FileName需要是一個可執行文件。您將需要一個JavaScript解釋器來'運行'.js文件。