15

嗨,我对 Powershell 很陌生,但我有一个琐碎的问题。我希望能够判断命令是否已成功完成,以便向主机提供有意义的消息。

我正在使用该appcmd命令在 IIS 中添加绑定。基本上是这样的:

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

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

我想如果我只是Write-Host "Successfully added binding"在那个声明之后加上它,不管它是否appcmd成功,它都会触发。

我猜我需要做类似的事情:

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

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

感谢您对此的任何帮助!干杯

4

1 回答 1

18

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

如果您想测试 EXE 是否出错并且 EXE 使用标准的 0 退出代码来指示成功,那么只需$?在调用 EXE 后立即检查特殊变量。如果它是 $true,那么 EXE 返回一个 0 退出代码。

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

于 2010-10-21T00:09:55.617 回答