PowerShell: Jeżeli skrypt się wykonał poprawnie, wtedy wykonaj….

Uruchamiając skrypty często potrzebujemy informacji o tym czy jego wykonanie zakończyło się poprawnie. Tak aby móc podjąć dalsze kroki.

Najprostszym i zarazem skutecznym sposobem jest to użycie parametru:

$?

Zaraz po bloku kodu lub poleceniu, ten wbudowany parametr prezentuje nam stan ostatniego wykonanego polecenia w postaci $true lub $false.

Istnieje też inna domyślna zmienna która może na pomóc w rozwiązaniu warunku poprawności wykonania polecenia:

$LastExitCode

Ta zmienna pozwala nam przechwycić wynik polecenia w postaci kodu wyjścia. Poprawne wykonanie zwraca 0. Zmiennej tej możemy używać dla przechwycenia wyniku programu który wykonywał się w skrypcie a posiada wiele różnych kodów wyjścia np Robocopy.

Program Robocopy posiada własne kody wyjścia i dzięki $LastExitCode możesz dowiedzieć się wiecej – np jak przebiegło kopiowanie w Twoim skrypcie:

robocopy "C:\data\" "B:\backup\" /MIR /NP /MT:32

if ($LastExitCode -lt 8) {
        
        Write-Host "Robocopy succeeded"
    
        } 

else {

        Write-Host "Robocopy failed with exit code:" $LastExitCode

        }

Teraz wystarczy już tylko dalej układać klocki – jeżeli kopiowanie się powiedzie, wyślij maila. Jeżeli backup się nie uda wyślij SMSa.