Определение успешности команды Powershell

Привет, я новичок в Powershell, но у меня есть один вопрос. Я хочу узнать, успешно ли выполнена команда, чтобы я мог предоставить содержательные сообщения для хоста.

Я использую команду appcmd для добавления привязки в IIS. По сути, это выглядит следующим образом:

./appcmd set site /site.name:........................

Но как я могу сделать чек, чтобы убедиться, что он был успешным или нет?

Я думаю, что если я просто поставлю Write-Host "Successfully added binding" после этого утверждения, он будет срабатывать после того, как будет выполнено appcmd.

Я предполагаю, что мне нужно сделать что-то вроде:

$successful = ./appcmd set site /site.name:........................

но тогда $successful представляется строкой, содержащей результат msg?

Спасибо за помощь! Приветствия

Ответы

Ответ 1

Предполагая, что appcmd является консольным exe, даже если это ошибка, следующая строка в script будет выполнена.

Если вы хотите проверить, если EXE ошибочно, а EXE использует стандартный код выхода 0, чтобы указать успех, просто проверьте специальную переменную $? сразу после вызова EXE. Если это значение равно $true, EXE вернет код выхода 0.

Если EXE является нестандартным с точки зрения кода выхода, он возвращается для успеха (возможно, он имеет несколько кодов успеха), а затем проверяет $LastExitCode, чтобы получить точный код выхода, который возвращает последний EXE.