Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从cmdlet中的内部管道获取信息_C#_Powershell_Cmdlet - Fatal编程技术网

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

C# 从cmdlet中的内部管道获取信息,c#,powershell,cmdlet,C#,Powershell,Cmdlet,我正在尝试创建嵌套管道。现在,我在此嵌套管道中运行的cmdlet需要检查它是否从嵌套管道运行。从嵌套管道运行时,它的行为需要稍有不同 有人能帮助确定cmdlet是否从嵌套管道运行吗 我使用以下代码创建嵌套管道: Pipeline pipeline = Runspace.DefaultRunspace.CreateNestedPipeline("cmdletName","true") 我倾向于同意@Ansgar Wiechers,我认为你不一定是以“正确”的方式接近管道 PowerShell旨在

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

有人能帮助确定cmdlet是否从嵌套管道运行吗

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

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

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

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

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

--编辑--

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


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

我感觉到设计有缺陷。我创建嵌套管道是因为我想从已运行的cmdlet调用一个cmdlet。因此,我在同一运行空间中创建了一个嵌套管道,该管道中有第二个cmdlet。当从另一个cmdlet调用此cmdlet时,其行为需要有所不同。否我无法使用pipeline.isNested属性,因为我没有使用此属性的管道的名称。我需要在这个嵌套管道中运行的cmdlet中检查这一点。现在,此cmdlet的函数将不具有用于创建嵌套管道的管道变量。