• 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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です