• 06/09/2017
  • 3 minuter att läsa
    • s
    • s
    • s
    • X

kort beskrivning

beskriver ett språkkommando som du kan använda för att köra statementlistor baserat påresultaten från en eller flera villkorliga tester.

lång beskrivning

Du kan användaIf för att köra kodblock om ett angivet villkortest utvärderar till Sant., Du kan också ange ett eller flera ytterligareytterligare tester för att köra om alla tidigare tester utvärderar till falskt. Slutligen kan du ange ett extra kodblock som körs om inget annat prioriterat test utvärderar till Sant.

Syntax

följande exempel visarIf statement syntax:

if (<test1>) {<statement list 1>}

När du kör ettIf – uttalande utvärderar PowerShell<test1>villkorligt uttryck som sant eller falskt., Om<test1> är sant, körs<statement list 1> och PowerShell avslutar uttalandetIf. Om<test1> är falskt, utvärderar PowerShell det villkor som anges av<test2> villkorligt uttalande.

Du kan använda flera ElseIf-uttalanden för att kedja en rad villkorstester. Så, att varje test körs endast om alla tidigare tester är falska.Om du behöver skapa ett If – uttalande som innehåller många ElseIf-uttalanden,överväg att använda ett Switch-uttalande istället.,

exempel:

det enklasteIf – uttalandet innehåller ett enda kommando och innehåller inga ElseIf-uttalanden eller andra uttalanden. Följande exempel visarden enklaste formen avIf – satsen:

if ($a -gt 2) { Write-Host "The value $a is greater than 2."}

i det här exemplet, om $A-variabeln är större än 2, Kör conditionevaluates till true och statementlistan. Om $A är mindre äneller lika med 2 eller inte är en befintlig variabel, visar If – satsen inte ett meddelande.,

genom att lägga till ett annat uttalande visas ett meddelande när $a är mindre än orequal till 2. Som nästa exempel visar:

för att ytterligare förfina det här exemplet kan du använda ElseIf-uttalandet för att visa meddelande när värdet på $A är lika med 2. Som nästa exempel visar:

använda ternära operatörssyntax

PowerShell 7.0 introducerade en ny syntax med ternära operatör. Det följer C # ternaryoperator syntax:

<condition> ? <if-true> : <if-false>

den ternära operatören beter sig som den förenklade if-else – satsen., <condition> expressionis utvärderas och resultatet konverteras till en boolesk för att bestämma vilken gren som ska utvärderasnext:

  • uttrycket <if-true> körs om uttrycket <condition> är sant
  • uttrycket <if-false> körs om uttrycket <condition> är sant
  • uttrycket <if-false> körs om uttrycket <condition> uttrycket är falskt

till exempel:

$message = (Test-Path $path) ? "Path exists" : "Path not found"
$service = Get-Service BITS$service.Status -eq 'Running' ? (Stop-Service $service) : (Start-Service $service)

i det här exemplet, om tjänsten körs, stoppas den, och om dess status inte körs,startas den.,

se även

about_Comparison_Operators

about_Switch

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *