PowerShellの関数について(1)
PowerShellの関数は値の返却方法が.NET等の言語とは扱いが異なってきます。
関数内で「Write-Output」コマンドレットでメッセージを出力した場合、出力したメッセージとReturnで指定された値が返却されます。
一方、「Write-Host」コマンドレットでメッセージを出力した場合、Returnで指定した値のみが返却されます。
PowerShellのエラーになる関数の例
# エラーになる関数の例 Function testFunction { Param([String]$mes,[Boolean]$flg) # Write-Outputコマンドレットで出力された内容は呼び出し元に返却される Write-Output $mes if($mes { Return 1 } else { Return 0 } [Stirng]$message = "メッセージを出力します。" [Int]$result = TestFunction($message)($true) if($result -eq 1) { Write-Host "正です。" } else { Write-Host "誤です。" } # エラーになります
PowerShellの正常に動作する関数の例
# 正常に動作する関数の例 Function testFunction { Param([String]$mes,[Boolean]$flg) # Write-Hostコマンドレットで出力された内容は呼び出し元に返却されない Write-Host $mes if($mes { Return 1 } else { Return 0 } [Stirng]$message = "メッセージを出力します。" [Int]$result = TestFunction($message)($true) if($result -eq 1) { Write-Host "正です。" } else { Write-Host "誤です。" } # エラーになりません
リンク