• 06/09/2017
  • 3 minuty do odczytania
    • S
    • s
    • s
    • x

Krótki opis

opisuje polecenie języka, którego można użyć do uruchamiania list instrukcji na podstawie wyników jednego lub kilku testów warunkowych.

długi opis

możesz użyć poleceniaIf do uruchamiania bloków kodu, jeśli określony conditionaltest zostanie obliczony na true., Można również określić jeden lub więcej dodatkowych testów, które mają zostać uruchomione, jeśli wszystkie wcześniejsze testy oceniają na false. Na koniec możesz określić dodatkowy blok kodu, który jest uruchamiany, jeśli żaden inny test priorconditional nie zostanie oceniony na true.

składnia

poniższy przykład pokazuje składnięIf składnia polecenia:

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

Po uruchomieniu poleceniaIf PowerShell ocenia polecenie<test1>wyrażenie warunkowe jako true lub false., Jeśli <test1> jest prawdziwe,<statement list 1> uruchamia się i PowerShell kończy działanie instrukcji If. Jeśli<test1> jest false, PowerShell oblicza warunek określony w instrukcji warunkowej <test2>.

Możesz użyć wielu poleceń Elseif, aby połączyć serię testów warunkowych. Tak więc każdy test jest uruchamiany tylko wtedy, gdy wszystkie poprzednie testy są fałszywe.Jeśli chcesz utworzyć instrukcję If zawierającą wiele instrukcji Elseif, rozważ użycie instrukcji Switch.,

przykłady:

najprostszaIf instrukcja zawiera jedno polecenie i nie zawiera żadnych instrukcji Elseif ani żadnych innych instrukcji. Poniższy przykład pokazuje najprostszą formę instrukcji If:

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

w tym przykładzie, jeśli zmienna $a jest większa niż 2, warunek zmienia wartość na true, a lista instrukcji zostanie uruchomiona. Jednakże, jeśli $A jest mniejsze niż lub równe 2 lub nie jest istniejącą zmienną, polecenie If nie wyświetla komunikatu.,

dodając polecenie Else, wyświetlany jest komunikat, gdy $a jest mniejsze niż orequal do 2. Jak pokazuje następny przykład:

aby jeszcze bardziej udoskonalić ten przykład, możesz użyć instrukcji Elseif do wyświetlenia wiadomości, gdy wartość $a jest równa 2. Jak pokazuje następny przykład:

używając składni operatora ternary

PowerShell 7.0 wprowadził nową składnię używając operatora ternary. Jest on zgodny ze składnią C# ternaryoperator:

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

operator ternary zachowuje się jak uproszczona Instrukcja if-else., Wyrażenie <condition> jest obliczane, a wynik jest konwertowany na wartość logiczną, aby określić, która gałąź ma zostać ocenionastępny:

  • wyrażenie <if-true> jest wykonywane,jeśli wyrażenie <condition> jest prawdziwe
  • wyrażenie <if-false> wyrażenie jest wykonywane, jeśli <condition> wyrażenie jest false

na przykład:

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

w tym przykładzie, jeśli usługa jest uruchomiona, zostanie zatrzymana, a jeśli jego status nie jest uruchomiony, jest uruchomiony.,

Zobacz też

oout_comparison_operators

oout_switch

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *