1

我正在尝试创建一个嵌套管道。现在我在这个嵌套管道中运行的 cmdlet 需要检查它是否从嵌套管道运行。从嵌套管道运行时,它的行为需要稍有不同。

谁能帮助如何确定 cmdlet 是否从嵌套管道运行?

我使用以下代码创建嵌套管道:

Pipeline pipeline = Runspace.DefaultRunspace.CreateNestedPipeline("cmdletName","true")
4

1 回答 1

0

我倾向于同意@Ansgar Wiechers,我认为您不一定以“正确”的方式接近管道。

PowerShell 旨在使用与管道运算符结合在一起的单独 cmdlet|将数据从一个 cmdlet 传递到另一个。物理上创建嵌套管道打破了这个惯例,并且会使事情变得过于复杂。

PowerShell 确实有几种方法来处理管道以及数据如何在管道中移动(例如,使用 Begin、Process、End 块)。这是参考文章的链接,该文章使用:Grown-Up PowerShell Functions。它解释了 PowerShell 的管道如何工作,以及如何使用 Begin、Process、End 块,以及如何创建 cmdlet,非常值得一读。

- 编辑 -

我想我更好地理解你的意思。您在 C# 程序中运行 PowerShell(因此需要创建嵌套管道)。

要查看管道是否嵌套,可以使用Pipeline.IsNested属性。

于 2014-02-25T21:31:14.373 回答