PowerShell - это странное сочетание .bat и .NET. В .bat вы проверяете выходные данные errorlevel и stderr из команд. В .NET вы ловите исключения.
Как командлеты возвращают ошибки? Они выдают исключения, когда терпят неудачу, или они устанавливают $? вместо? Это настраивается?
Я также предполагаю, что функции .NET, которые я вызываю в PowerShell, всегда будут генерировать исключения и не будут автоматически перехватываться оболочкой и преобразовываться в ошибки. Это правильно?
Может быть, я действительно должен спросить: какая хорошая статья рассказывает обо всем этом? Кажется, что многие инженеры, такие как я, имеющие опыт работы с cmd .bat и .NET, задаются вопросом, как именно нам следует поступать в этом смелом новом мире Posh.