【问题标题】:How to redirect perl output in c#如何在c#中重定向perl输出
【发布时间】:2012-02-25 01:55:58
【问题描述】:

我正在编写一个 C# 程序来与 perl 脚本交互。该脚本执行 rtmpdump,当它真正开始显示进度时,它给我一个错误,系统找不到指定的文件。Win32 GetConsoleScreenBufferInfo 失败。未设置控制台和行变量。

这是我用来执行 perl 脚本的代码:

ProcessStartInfo prc = new ProcessStartInfo("perl", "script");

                prc.UseShellExecute = false;
                prc.RedirectStandardOutput = true;
                Process process = new Process();
                process.StartInfo = prc;
                process.Start();
                process.WaitForExit();

                Console.WriteLine("DONE!");

                sb = new StringBuilder("");

                process.OutputDataReceived +=new DataReceivedEventHandler(linkHandler);

                Console.WriteLine(sb);

private static void linkHandler(object sendingProcess, DataReceivedEventArgs outline)
    {
        if (!String.IsNullOrEmpty(outline.Data)){
            sb.Append(Environment.NewLine + outline.Data);
        }
    }

这是我得到的错误.. : (

系统找不到指定的路径。 无法获取终端大小。 Win32 GetConsoleScreenBufferInfo 调用不成功 港湾COLUMNS 和 LINES 环境变量不起作用。调整大小程序 没用。在 C:/strawberry/perl/vendor/lib/Term/ReadKey.pm 第 373 行。

【问题讨论】:

    标签: c# perl


    【解决方案1】:

    看起来您尝试运行的 Perl 脚本需要在终端中执行,因此在尝试获取终端设置后失败...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2021-10-16
      • 2013-04-30
      相关资源
      最近更新 更多