Przykłady instrukcji warunkowej IF

By PowerShell

Na pewno bardzo często wykorzystujesz if-else w swoich skryptach PowerShell. Jest to pierwsza instrukcja, która przychodzi do głowy, jeśli trzeba podjąć decyzji, który fragment kodu wykonać w zależności od spełnionych warunków.

Zobacz poniższe sposoby użycia instrukcji warunkowej IF, których być może nigdy wcześniej nie wykorzystałeś.

💡 Jeśli potrzebujesz więcej informacji o samej instrukcji warunkowej if, znajdziesz je we wpisie “Everything you wanted to know about the if statement

Przykład 1 – Rezygnacja z bloku else

$Name = 'file.txt'
if ($Name -ne 'file.txt')
{
    Write-Warning "Niepoprawna nazwa."
}
else 
{
    Write-Output $Name
    # kolejne instrukcje
}

Zrezygnuj z instrukcji else i wykorzystaj return w bloku po if do wyjścia ze skryptu lub funkcji. W sytuacji spełnienia warunku kod poniżej nie zostanie wykonany.

$Name = 'file.txt'
if ($Name -ne 'file.txt')
{
    Write-Warning "Niepoprawna nazwa. Koniec działania skryptu"
    return
}
 
Write-Output $Name
# kolejne instrukcje

Przykład 2 – Przypisanie wartości

$Parameter = 2
if ($Parameter -eq 1 )
{
    $Device = 'Client'
}
elseif ($Parameter -eq 2)
{
    $Device = 'Server'
}
else
{
    $Device = 'Nothing'
}
Write-Output $Device

Zamiast przypisywać do zmiennej wartość w każdym bloku, przypisz do niej całą instrukcji if. W ten sposób łatwiej będzie Ci np. zmienić nazwę zmiennej.

$Parameter = 2
$Device = if ($Parameter -eq 1 ) {
    'Client'
}
elseif ($Parameter -eq 2) {
    'Server'
}
else {
   'Nothing'
}
Write-Output $Device

Alternatywą może być również taki zapis, gdzie unikamy wykorzystywania elseif. Unikamy złożonej logiki i kod staje się prostszy do zrozumienia.

$Parameter = 1
$Device = if ($Parameter -eq 1 ) { 'Client' }
$Device = if ($Parameter -eq 2 ) { 'Server' }
Write-Output $Device

Przykład 3 – Zastąpienie instrukcją switch

$Parameter = 2
if ($Parameter -eq 1 )
{
    $Device = 'Client'
}
elseif ($Parameter -eq 2)
{
    $Device = 'Server'
}
else
{
    $Device = 'Nothing'
}
Write-Output $Device

Jeśli Twoja instrukcja warunkowa jest rozbudowana o sporą ilość elseif, warto zastąpić ją instrukcją switch.

$Parameter = 2
$Device =  switch ($Parameter) {
    1 { 'Client' }
    2 { 'Server' }
    Default { 'Nothing' }
}
Write-Output $Device
22 Najważniejsze Wskazówki Pisania Skryptów PowerShell

No comments yet.

Dodaj komentarz

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

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

× Close