[PowerShell 関数の基礎] 高度な関数の作成:パイプライン入力と出力の処理

概要

PowerShellでは、パイプラインを使用して複数のコマンドレットをつなぎ合わせることができます。パイプラインを使用することで、前のコマンドの出力を次のコマンドの入力として受け取ることができます。この記事では、パイプライン入力を受け取る関数を作成する方法について説明します。

 

関数の作成例

Function Get-MyInput { 
  [CmdletBinding()] 
  param ( [Parameter(ValueFromPipeline = $true)] [string[]] $InputObject )
  
  Begin 
  { 
    Write-Output "Start processing" 
  }
  Process 
  { 
    foreach ($item in $InputObject) 
    { 
      Write-Output "Processing item: $item" 
    } 
  }
  End 
  { 
    Write-Output "End processing" 
  } 
}

上記のコードは、パイプライン入力を受け取る Get-MyInput という関数です。この関数は、入力オブジェクトの配列をパイプラインから受け取り、それぞれのオブジェクトを処理するために foreach ループを使用しています。

ValueFromPipeline = $true という属性を使用することで、関数がパイプライン入力を受け取ることができるようになります。また、関数内で Begin、Process、End のスクリプトブロックを使用することで、入力の前処理、処理、後処理を実行できます。

 

使用例

以下は、パイプライン入力を受け取る Get-MyInput 関数を使用した例です。

 
PS C:\Users\ 
PS C:\Users\hiro> "Item1", "Item2", "Item3" | Get-MyInput
Start processing
Processing item: Item1
Processing item: Item2
Processing item: Item3
End processing

上記のコードでは、配列 “Item1”, “Item2”, “Item3” をパイプラインで Get-MyInput 関数に渡しています。関数は配列の各要素を foreach ループで処理し、処理結果を出力しています。

コメント

タイトルとURLをコピーしました