C# 关于将值从VBScript返回到.NET的问题

C# 关于将值从VBScript返回到.NET的问题,c#,vbscript,console,C#,Vbscript,Console,我正在尝试设置一个能够从.NET运行VBScript文件的应用程序(请参见),并将其大部分设置良好,但我想对此进行测试,因此我需要能够从VBScript返回数据。我发现我可以使用WScript.Quit([ErrorCode])返回一个整数值,但是返回字符串呢?是否可以将它们发送到DataReceivedEventHandler?还是我需要换一种方法?谢谢。您可以写入标准输出(将其重定向到事件处理程序)。我相信VBScript,这是WScript.Stdout 如果你有多条线被写出来,你可以考虑

我正在尝试设置一个能够从.NET运行VBScript文件的应用程序(请参见),并将其大部分设置良好,但我想对此进行测试,因此我需要能够从VBScript返回数据。我发现我可以使用WScript.Quit([ErrorCode])返回一个整数值,但是返回字符串呢?是否可以将它们发送到DataReceivedEventHandler?还是我需要换一种方法?谢谢。

您可以写入标准输出(将其重定向到事件处理程序)。我相信VBScript,这是WScript.Stdout

如果你有多条线被写出来,你可以考虑使用一个类似字串的东西来捕获它们。

        var p = new Process()
        {
            StartInfo = new ProcessStartInfo("netstat")
            {
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                UseShellExecute = false,
            }
        };

        var outputWriter = new StringWriter();
        p.OutputDataReceived += (sender, args) => outputWriter.WriteLine(args.Data);

        var errorWriter = new StringWriter();
        p.ErrorDataReceived += (sender, args) => errorWriter.WriteLine(args.Data);

        p.Start();
        p.BeginOutputReadLine();
        p.BeginErrorReadLine();     
        p.WaitForExit();

        if (p.ExitCode == 0)
        {
            Console.WriteLine(outputWriter.GetStringBuilder().ToString());
        }
        else
        {
            Console.WriteLine("Process failed with error code {0}\nMessage Was:\n{1}", p.ExitCode
                , errorWriter.GetStringBuilder().ToString());
        }