Powershell: Write-Host, Write-Warning i inne polecenia z serii…

28-Sty-2019

Zacznijmy od tego co to jest host. Jeśli administrujesz systemami, to pewnie hostem nazywasz komputer: „pingować hosta”, „logować się do hosta” itp. W przypadku powershella host to nie komputer, tylko program jakim łączysz sie do powrshella. Stąd też np polecenie

Get-Host zwraca np wersję programu jakim się łączysz do powershella, a $PSVersionTable zwraca wersję powershella 🙂

Polecenie Write-Host ma na zadanie wyświetlić tekst na hoście. Możesz go wyświetlać na kolorowo (masz opcje -ForegroundColor, -Backgroundcolor). Te komunikaty są zazwyczaj ładne,… a czasami odpustowe 🙂

Polecenie Write-Warning nie ma opcji zmieniających kolorki. Należy go używać do wyświetlania na wyjściu diagnostycznym (którym domyślnie jest host) właśnie ostrzeżeń. Czy w Polce, czy w Japonii, jak skrypter powershella zobaczy pomarańczowy komunikat, to będzie wiedział, że to ostrzeżenie.

Mamy też Write-Error – polecenie wyświetlające i zgłaszające błąd.

Oprócz tego są też inne wyspecjalizowane polecenia:

Niektóre z tych poleceń cokolwiek wyświetlą tylko jeżeli są spełnione określone warunki. Np. Write-Verbose (tzw. tryb gadatliwy domyślnie nie działa):

Dopiero kiedy zmienisz wartość zmiennej globalnej $VerbosePreference na „Continue”, to coś się wyświetli

W tym akurat przypadku cel jest taki, że na etapie pisania skryptu poleceniem tym można wyświetlać mnóstwo dodatkowych  komunikatów diagnostycznych. Kiedy jednak skrypt trafi na środowisko produkcyjne, to tam zmienna $VerbosePreference” jest ustawiona na domyślną wartość „SilentlyContinue” i tam polecenie Write-Verbose nie będzie nic wyświetlać.

Więcej o zmiennych preferencyjnych, do których należy między innymi $PreferenceVariable znajdziesz tu:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_preference_variables?view=powershell-6

Dodaj komentarz:

Autor: Rafał Kraik