PowerShell:
Вывод отладочной информации
Как это сделать:
Давайте держать всё просто и сделаем что-нибудь конкретное. Мы покажем значение переменной, как продвигается цикл, и зафиксируем злосчастную ошибку, которая может возникнуть.
# Показываем значение переменной
$name = "Guru PowerShell"
Write-Host "Значение переменной name: $name"
# Отслеживаем прогресс цикла
for ($i = 0; $i -lt 5; $i++) {
Write-Host "Мы находимся на итерации: $i"
}
# Захват и печать ошибки
try {
Get-Item "C:\NonExistent\File.txt" -ErrorAction Stop
} catch {
Write-Host "Упс: $_"
}
Пример вывода:
Значение переменной name: Guru PowerShell
Мы находимся на итерации: 0
Мы находимся на итерации: 1
Мы находимся на итерации: 2
Мы находимся на итерации: 3
Мы находимся на итерации: 4
Упс: Не удается найти путь 'C:\NonExistent\File.txt', потому что он не существует.
Погружение в детали
В древние времена компьютирования отладка часто означала буквально физических насекомых, мешающих работе оборудования. С тех пор мы проделали долгий путь, теперь используя термин “баг” для проблем с кодом и “отладка” для их исправления.
Командлет Write-Host
в PowerShell — это ваш товарищ по печати на экран, что неплохо для базовых скриптов. Но есть круче способы это делать: Write-Verbose
, Write-Debug
, Write-Output
и Write-Information
представляют собой разные вкусы вывода в зависимости от конкретных случаев использования. Они дают контролируемую многословность, что замечательно, когда вам нужно замутить ваш скрипт или записать что-то в лог без заспамления консоли.
Когда дело доходит до реализации, обработка ошибок в PowerShell особенно стильная. Вы можете ловить различные типы исключений с помощью блоков try
, catch
, finally
и решать, как реагировать. Это словно выбрать своё приключение для управления ошибками.