[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】Workflow の InlineScript での戻り値



更新日:2019/06/11


Powershell では workflow 機能により複数のジョブを実行することが可能です。ただしworkflowでサポートされていない機能は InlineScript ブロック内で実行する必要があります。
InlineScript で戻り値を戻す方法を紹介します。

return を使用して戻すことが可能です。


基本形



InlineScript 内では return で値を戻します。

workflow myfunc
{
ForEach -parallel ($i in 1..3)
{
$retvalue=InlineScript
{
return 99
}
write-output ("Retvalue:" + $retvalue)
}
}

myfunc




あるいはコマンドレットの戻り値として設定することも可能です。以下の例ではサービス名に"LanmanWorkstation"が含まれているものを戻り値として戻しています。


workflow myfunc
{
ForEach -parallel ($i in 1..3)
{
$retvalue=InlineScript
{
Get-Service | where-object {$_.name -like '*LanmanWorkstation*'} | select -ExpandProperty name
}
write-output ("Retvalue:" + $retvalue)
}
}

myfunc




他の ps1ファイルからの戻り値



他のファイルを呼びだし、そのファイルの戻り値をチェックしています。
test.ps1 からの戻り値は $LASTEXITCODE に入るので、その値を InlineScript 内で return によりworkflow に戻しています。


workflow myfunc
{
ForEach -parallel ($i in 1..3)
{
$retvalue=InlineScript
{
c:\scripts\test2.ps1
return $LASTEXITCODE
}
write-output ("Retvalue:" + $retvalue)
}
}

myfunc




呼ばれる ps1ファイルでは以下のように戻り値を戻しています。
[c:\scripts\test.ps1]

exit 99




以下のバージョンで確認しました。


PS C:\WINDOWS\system32> ($PSVersionTable)["PSVersion"]

Major Minor Build Revision
----- ----- ----- --------
5 1 17134 407









[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018