我对C#比较新,但对PowerShell并不陌生。
我想使用C#来执行PowerShell代码。但是,对象的输出结果与在PowerShell窗口中运行命令时不同。我得到的是对象的名称而不是它的数据。这是我的尝试:
string script = @"
get-process | ft
";
PowerShell powerShell = PowerShell.Create();
powerShell.AddScript(script);
var results = powerShell.Invoke();
foreach (var item in results)
{
Console.WriteLine(item);
}
返回结果:
Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
但是在PowerShell命令行窗口中,它返回一个更格式化的表格视图:
PS C:\Dropbox\PowerShell> ps | ft
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id SI ProcessName ------- ------ ----- ----- ----- ------ -- -- ----------- 131 12 1980 2572 85 0.45 13216 1 acrotray
我真的想要两件事:
- 能够产生与PowerShell命令窗口相同的输出的代码
- 对正在发生的事情进行解释,以便我可以更好地导航
提前感谢!