PowerShellの関数について(1)

2015/03/20PowerShellPowerShellの基本

記事内に広告が含まれています。

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 "誤です。"
}
# エラーになりません
システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ