启动调用 powershell 脚本错误输出的进程

Start Process which calls a powershell script error output

我有一个 c# 控制台应用程序,它调用一个 powershell 脚本,如下所示。如果 powershell 脚本中有任何错误,我希望它能将错误报告给 c# 控制台,然后在控制台中中断。怎么办呢?代码示例将不胜感激。

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"powershell.exe";
startInfo.Arguments = argFinal;
startInfo.RedirectStandardOutput = false;
startInfo.RedirectStandardError = false;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.CreateNoWindow = false;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();

此外,powershell 脚本本身会调用 7-zip 等内容。如果他们出错,我也想记录下来。不确定基于从 powershell 调用而不是 c# 控制台应用程序本身是否会有所不同。

您需要将 RedirectStandardError 属性 设置为 true。然后您可以读取 Process 对象上的 StandardError 流以获取任何错误文本。有关详细信息,请参阅此 MSDN topic