
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.