在 C# 中使用 PowerShell 时,我遇到了一个非常奇怪的行为。当我执行
InitialSessionState s = InitialSessionState.CreateDefault2();
var ps = PowerShell.Create(s);
ps.AddCommand("Write-Information")
.AddArgument("<test>")
.Invoke();
// Writes 0. But why?
Console.WriteLine(PS.Streams.Information.Count);
没有捕获流(Stream.Information、Stream.Error、...)。但是当我使用
ps.AddScript("Write-Information '<test>'")
.Invoke();
// Writes 1 as expected
Console.WriteLine(PS.Streams.Information.Count);
一切都按预期工作。任何人都可以解释这种差异吗?我错过了一些概念吗?怎么可能有区别?如何捕获 AddCommand 调用的流?
感谢您对此的任何意见!