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