1

ネストされたパイプラインを作成しようとしています。このネストされたパイプラインで実行しているコマンドレットは、ネストされたパイプラインから実行されているかどうかを確認する必要があります。ネストされたパイプラインから実行する場合は、少し異なる動作をする必要があります。

コマンドレットがネストされたパイプラインから実行されているかどうかを判断する方法を教えてください。

次のコードを使用して、ネストされたパイプラインを作成します。

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

1 に答える 1

0

私は@Ansgar Wiechersに同意する傾向があります.パイプラインに必ずしも「正しい」方法でアプローチしているとは限りません.

PowerShell は、パイプライン オペレーターと結合された個別のコマンドレットを使用して、あるコマンドレットから別のコマンドレットに|データを渡すように設計されています。ネストされたパイプラインを物理的に作成すると、この規則が破られ、物事が過度に複雑になります。

PowerShell には、パイプラインを処理するためのいくつかのメソッドと、パイプラインを介したデータの移動方法があります (たとえば、Begin、Process、End ブロックなど)。使用する参照記事へのリンクは次のとおりです: Grown-Up PowerShell Functions。PowerShell のパイプラインのしくみ、Begin、Process、End ブロックの使用方法、およびコマンドレットの作成方法が説明されており、一読の価値があります。

- 編集 -

私はあなたの言いたいことをよりよく理解していると思います。C# プログラム内で PowerShell を実行しています (したがって、ネストされたパイプラインを作成する必要があります)。

パイプラインがネストされているかどうかを確認するには、Pipeline.IsNestedプロパティを使用できます。

于 2014-02-25T21:31:14.373 に答える