nakamurakko’s blog

ほぼ IT 技術メモ

PowerShell パイプラインから送信された値を設定する

環境

  • Windows 11
  • PSVersion 5.1.26100.4768

下記のような、2つの値を足し算して返す関数(Sum)の結果を受け取る場合、 = で代入できるけど、

function Sum($value1, $value2) {
    return $value1 + $value2
}

$result1 = Sum 1 2
Write-Host "1 : The total is $result1."

# 1 : The total is 3.

パイプラインを使って、結果を Set-Variable で設定する事も可能。

$result2 = 0
Sum 3 4 | Set-Variable -Name result2
Write-Host "2 : The total is $result2."

# 2 : The total is 7.

Sum を2回呼び出して結果を設定したい場合、間に ForEach-Object を経由させれば1行で書ける。

Sum 5 6 | ForEach-Object { Sum $_ 7 } | Set-Variable -Name result3
Write-Host "3 : The total is $result3."

# 3 : The total is 18.