确定Powershell命令是否成功

bar*_*ron 15 powershell logic appcmd

嗨,我对Powershell很新,但我有一个琐碎的问题.我希望能够判断命令是否已成功完成,这样我就可以向主机发送有意义的消息.

我正在使用该appcmd命令在IIS中添加绑定.基本上如下:

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

但是我如何检查以确保它是否成功?

我想如果我只是把Write-Host "Successfully added binding"它放在那个声明之后,无论是否appcmd成功都会触发它.

我猜我需要做的事情如下:

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

但$successful似乎是一个包含msg结果的字符串?

感谢任何帮助!干杯

Kei*_*ill 17

假设appcmd是一个控制台exe,即使它出错,脚本中的下一行也会执行.

如果要测试EXE是否出错并且EXE使用标准0退出代码表示成功,则只需$?在调用EXE后立即检查特殊变量.如果是$ true,则EXE返回0退出代码.

如果EXE在退出代码方面是非标准的,则返回成功(可能它有多个成功代码),然后检查$LastExitCode以获得最后返回的EXE的确切退出代码.

  • 确切地。`$?` 适用于所有命令执行。它表示前一个 most 命令成功。请注意,非终止错误 (Get-ChildItem idontexist) 仍会导致 `$?` 返回 true。如果命令抛出终止错误,则`$?` 返回 $false。如有必要,您可以使用无处不在的参数 `-ErrorAction Stop` 强制命令将非终止错误转换为终止错误。`$LastExitCode` 保存最近执行的 EXE 的退出代码。 (2认同)