从cmdlet中的内部管道获取信息

时间:2014-02-25 14:16:01

标签: c# powershell cmdlet

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

任何人都可以帮助如何确定cmdlet是否从嵌套管道运行?

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

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

1 个答案:

答案 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属性。