C# 关于.NET中同步powershell执行的问题
我想在.NET framework中执行powershell命令,处理输出和错误,但以下代码无法执行任何“复杂”命令C# 关于.NET中同步powershell执行的问题,c#,.net,powershell,C#,.net,Powershell,我想在.NET framework中执行powershell命令,处理输出和错误,但以下代码无法执行任何“复杂”命令 这不是执行Powershell命令或任何命令的人。要执行任何程序,请将程序名传递给FileName,而不是cmd.exe。将任何实际参数传递给参数。这意味着FileName='powershell.exe'和Arguments=whatever。尽管powershell本身是用.NET编写的。您可以直接从代码创建Powershell管道并执行Powershell命令,而无需启动另
这不是执行Powershell命令或任何命令的人。要执行任何程序,请将程序名传递给
FileName
,而不是cmd.exe
。将任何实际参数传递给参数
。这意味着FileName='powershell.exe'
和Arguments=whatever
。尽管powershell本身是用.NET编写的。您可以直接从代码创建Powershell管道并执行Powershell命令,而无需启动另一个进程。此外,Powershell还有错误、进度、信息和其他无法从进程访问的流
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.WorkingDirectory = IsRoot(location);
process.StartInfo.Arguments = string.Concat("/C powershell.exe /C ", cmd);
process.Start();
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.Close();
return (output, error);