【问题标题】:Reading StandardOutput problem阅读标准输出问题
【发布时间】:2011-03-09 13:48:43
【问题描述】:

我想执行一个返回类似“GEORGE SMITH”的字符串的javascript。我想阅读该信息,但是当您运行此代码时,我得到:“指定的可执行文件不是有效的 Win32 应用程序”

如何获取这些信息?我试图从 .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();
}

【问题讨论】:

    标签: c# javascript stdout redirectstandardoutput


    【解决方案1】:

    javascript 文件不是可执行文件,您无法运行它。

    您需要运行 wscript.exe 并将 cardholder.js 作为命令行参数传递:

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

    【讨论】:

    • 它以这种方式工作,但哪种方式是阅读该信息的最佳方式?使用 StandardOutput.ReadToEnd();还是我应该使用 StreamReader?。
    • 两者都可以工作并且没有太大区别,除非脚本继续运行并且您需要停止阅读,在这种情况下第二个更好。
    【解决方案2】:

    cardholder.js 不是可执行文件。您的 startInfo.FileName 必须是可执行文件。您将需要一个 javascript 解释器来“运行”.js 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 2014-03-24
      • 2013-10-27
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多