Определение успешности команды 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.