- 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