- 06/09/2017
- 3分読む
-
- S
- s
- s
- x
短い説明
一つ以上の条件付きテストの結果に基づいてステートメントリストを実行するために使用できる言語コマンド
長い説明
If
ステートメントを使用して、指定されたconditionaltestがtrueと評価された場合にコードブロックを実行できます。, また、以前のすべてのテストがfalseと評価された場合に実行するadditionalconditionalテストを指定することもできます。 最後に、他の事前条件テストがtrueと評価されない場合に実行される追加のコードブロックを指定できます。
構文
次の例は、If
ステートメントの構文を示しています。
if (<test1>) {<statement list 1>}
If
ステートメントを実行すると、PowerShellは<test1>
条件式をtrueまたはfalseとして評価します。, <test1>
がtrueの場合、<statement list 1>
が実行され、PowerShellはIf
ステートメントを終了します。 <test1>
がfalseの場合、PowerShellは<test2>
条件文で指定された条件を評価します。
複数のElseifステートメントを使用して、一連のconditionaltestsを連鎖させることができます。 したがって、各テストは、以前のすべてのテストがfalseの場合にのみ実行されます。多くのElseif文を含むIf
文を作成する必要がある場合は、代わりにSwitch文を使用することを検討してください。,
例:
最も単純なIf
ステートメントには単一のコマンドが含まれており、Elseifステートメントやその他のステートメントは含まれていません。 次の例は、If
ステートメントの最も単純な形式を示しています。
if ($a -gt 2) { Write-Host "The value $a is greater than 2."}
この例では、$a変数が2より大きい場合、条件はtrueに評価され、ステートメントリストが実行されます。 ただし、$aが2以下の場合、または既存の変数でない場合、If
ステートメントはメッセージを表示しません。,
Elseステートメントを追加することにより、$aがorrequalより小さいときにメッセージが表示されます2。 次の例が示すように:
この例をさらに洗練するには、$aの値が2に等しいときにElseifステートメントを使用してメッセージをdisplayaすることができます。 次の例に示すように、
三項演算子の構文を使用する
PowerShell7.0では、三項演算子を使用する新しい構文が導入されました。 C#のternaryoperator構文に従います。
<condition> ? <if-true> : <if-false>
三項演算子は、簡略化されたif-else
ステートメントのように動作します。, <condition>
式が評価され、結果がブール値に変換されて、どのブランチを評価すべきかを決定します。
<if-true>
式が実行されます<condition>
式がtrueの場合<if-false>
式が実行されます。
式が実行されます。
式が実行されます。
式が実行されます。
式が実行されます。
式が実行されます。
式が実行されます。
式が実行されます。
式が実行されます。
式が実行されます。
div id=”48ef2e02ee”>
式はfalseです
例:
$message = (Test-Path $path) ? "Path exists" : "Path not found"
$service = Get-Service BITS$service.Status -eq 'Running' ? (Stop-Service $service) : (Start-Service $service)
この例では、サービスが実行中の場合は停止され、ステータスが実行中でない場合は開始されます。,
関連項目
about_Comparison_Operators
about_Switch