我正在尝试创建一个嵌套管道。现在我在这个嵌套管道中运行的 cmdlet 需要检查它是否从嵌套管道运行。从嵌套管道运行时,它的行为需要稍有不同。
谁能帮助如何确定 cmdlet 是否从嵌套管道运行?
我使用以下代码创建嵌套管道:
Pipeline pipeline = Runspace.DefaultRunspace.CreateNestedPipeline("cmdletName","true")
我正在尝试创建一个嵌套管道。现在我在这个嵌套管道中运行的 cmdlet 需要检查它是否从嵌套管道运行。从嵌套管道运行时,它的行为需要稍有不同。
谁能帮助如何确定 cmdlet 是否从嵌套管道运行?
我使用以下代码创建嵌套管道:
Pipeline pipeline = Runspace.DefaultRunspace.CreateNestedPipeline("cmdletName","true")
我倾向于同意@Ansgar Wiechers,我认为您不一定以“正确”的方式接近管道。
PowerShell 旨在使用与管道运算符结合在一起的单独 cmdlet|
将数据从一个 cmdlet 传递到另一个。物理上创建嵌套管道打破了这个惯例,并且会使事情变得过于复杂。
PowerShell 确实有几种方法来处理管道以及数据如何在管道中移动(例如,使用 Begin、Process、End 块)。这是参考文章的链接,该文章使用:Grown-Up PowerShell Functions。它解释了 PowerShell 的管道如何工作,以及如何使用 Begin、Process、End 块,以及如何创建 cmdlet,非常值得一读。
- 编辑 -
我想我更好地理解你的意思。您在 C# 程序中运行 PowerShell(因此需要创建嵌套管道)。
要查看管道是否嵌套,可以使用Pipeline.IsNested属性。