Powershell 7: eksperymentujemy #4

Powershell 7 wprowadził dwa nowe operatory umożliwiające warunkowe uruchamianie poleceń w łańcuchu.

Wyobraźmy sobie, że chcemy najpierw uruchomić polecenie A a potem polecenie B, ale tylko jeżeli A zakończyło się sukcesem.

Czemu tak? Na przykład A może tworzyć nowy folder a B kopiować coś do niego – nie ma sensu uruchamiać B jeżeli A się nie udało.

Do tego celu służy operator &&:

New-Item -Type Directory -Name "TestFolder01" -ErrorAction SilentlyContinue | Out-Null && Write-Host "Udało się"

Powyższy kod spróbuje utworzyć nowy folder „TestFolder01”, a następnie wyświetli komunikat „Udało się” jeżeli wszystko poszło OK.

Można też w drugą stronę: czasami chcemy uruchomić jakąś komendę tylko wtedy, gdy jakaś inna komenda poległa z błędem. Wówczas użyjemy operatora ||:

New-Item -Type Directory -Name "TestFolder01" -ErrorAction SilentlyContinue | Out-Null || Write-Host "Nie udało się"

Tu znów próbujemy utworzyć folder TestFolder01, ale ponieważ taki folder już jest, operacja New-Item nie powiedzie się i dostaniemy na wyjściu komunikat „Nie udało się”.

Operatory && i || można oczywiście łączyć:

New-Item -Type Directory -Name "TestFolder02" -ErrorAction SilentlyContinue | Out-Null && Write-Host "Udało się" || Write-Host "Nie udało się"

Powyższa linijka za pierwszym razem da komunikat „Udało się”, a za drugim – „Nie udało się”. Od biedy można myśleć o parze && – || jak o operatorze trójwartościowym: wykonaj A, jeżeli się uda to wykonaj B, w przeciwnym razie C:

A && B || C

Dodaj komentarz

avatar
Obrazki i zdjęcia
 
 
 
Filmy
 
 
 
Inne
 
 
 
  Zapisz się  
Powiadom o