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

我正在尝试设置一个能够从.NET运行VBScript文件的应用程序(请参阅此处 ),并且大部分设置都很好,但我想测试一下,所以我需要能够从我的数据中返回数据VB脚本。 我发现我可以使用WScript.Quit([ErrorCode])来获取整数值,但是返回字符串呢? 是否可以将它们提供给DataReceivedEventHandler? 或者我需要看一个不同的方法? 谢谢。

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

如果你写了多行,你可以考虑使用像StringWriter这样的东西来捕获它们,即

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