16

I am pretty new with using PowerShell and was wondering if anyone would have any input on trying to get PowerShell functions to return values.

I want to create some function that will return a value:

 Function Something
 {
     # Do a PowerShell cmd here: if the command succeeded, return true
     # If not, then return false
 }

Then have a second function that will only run if the above function is true:

 Function OnlyTrue
 {
     # Do a PowerShell cmd here...
 }
4

4 に答える 4

16

PowerShell で return ステートメントを使用できます。

Function Do-Something {
    $return = Test-Path c:\dev\test.txt
    return $return
}

Function OnlyTrue {
    if (Do-Something) {
        "Success"
    } else {
        "Fail"
    }
}

OnlyTrue

出力はSuccess、ファイルが存在するFail場合と存在しない場合です。

1 つの注意点は、PowerShell 関数はキャプチャされていないものをすべて返すことです。たとえば、Do-Something のコードを次のように変更したとします。

Function Do-Something {
    "Hello"
    $return = Test-Path c:\dev\test.txt
    return $return
}

ファイルが存在しない場合でも、Do-Something 関数は ("Hello", False) のオブジェクト配列を返すため、常に成功が返されます。PowerShell のブール値の詳細については、ブール値と演算子を参照してください。

于 2013-08-09T15:00:57.470 に答える