Powershell — игнор ошибок. Порой возникают ситуации, когда разработчикам необходимо игнорировать ошибки. Как правило это ошибки команд, которые не несут критический вес. Чтобы скрипт продолжил работать, возникает необходимость игнорировать ошибки.
Powershell — ErrorAction
Для того, чтобы ошибки какой-либо команды были проигнорированы и скрипт продолжил работу необходимо проставить флаг -ErrorAction Ignore. В таких случаях ошибка выводиться не будет.
Команда, в которой НЕ будут проигнорированы ошибки выглядит так:
1 |
Get-ChildItem -Path $path -Recurse | Remove-Item -force -recurse -ErrorAction Stop -ErrorVariable err |
Эта команда удалит папку/файл или все файлы, которые записаны в переменной $path, но в случае ошибки остановит выполнение скрипта потому, что у флага -ErrorAction стоит параметр stop. Этот флаг отвечает за обработку ошибок и принимает на вход следующие значения:
- Continue — выдаст сообщение об ошибке и продолжит выполнение программы.
- Ignore — не выдаст сообщение об ошибке и продолжит выполнение программы.
- Unquire — выдаст сообщение об ошибке и запросит выбор действия.
- SilentlyContinue — не выдаст сообщение об ошибке. Powershell занесет все появившиеся ошибки в переменную $Error автоматически.
- Stop — выполняет действие и выводит сообщение об ошибке, останавливая программу.
- Suspend — доступно только в рабочих процессах Powershell. При использовании, если команда запускается с ошибкой, рабочий процесс приостанавливается. Это позволяет исследовать такую ошибку и дает возможность возобновить рабочий процесс.
На этом у меня все. В целом Powershell erroraction имеет серьезный потенциал для управления шагами ваших скриптов. При правильном подходе уровень дебага можно значительно поднять. Подписывайтесь на нашу группу в ВК и канал на ютубе! Если остались вопросы — комментарии ниже!