Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定Powershell命令是否成功_Powershell_Logic_Appcmd - Fatal编程技术网

确定Powershell命令是否成功

确定Powershell命令是否成功,powershell,logic,appcmd,Powershell,Logic,Appcmd,嗨,我对Powershell很陌生,但我有一个小问题。我希望能够判断命令是否已成功完成,以便能够向主机发送有意义的消息 我正在使用appcmd命令在IIS中添加绑定。基本上是这样的: /appcmd设置站点/站点。名称:……….. 但我如何进行检查以确保其成功与否 我认为,如果我只是将Write Host“Successfully added binding”放在该语句之后,不管appcmd是否成功,它都会在该语句之后触发 我想我需要做一些事情,比如: $successful=./appcmd设

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

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

/appcmd设置站点/站点。名称:………..

但我如何进行检查以确保其成功与否

我认为,如果我只是将
Write Host“Successfully added binding”
放在该语句之后,不管
appcmd是否成功,它都会在该语句之后触发

我想我需要做一些事情,比如:

$successful=./appcmd设置站点/站点。名称:………..

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


谢谢你在这方面的帮助!Cheers

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

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


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

谢谢您的回答。所以我假设
$?
$LastExitCode
是相对的?假设我在整个脚本中执行这个(或另一个)cmd-这些变量与执行的最后一个命令有关?确切地说<代码>$?
适用于所有命令执行。它表示上一个most命令成功。请注意,非终止错误(Get ChildItem idontexist)仍然会导致
$?
返回true。如果命令引发终止错误,则
$?
返回$false。如有必要,您可以使用无处不在的参数
-ErrorAction Stop
强制命令将非终止错误转换为终止错误
$LastExitCode
保存最近执行的EXE的退出代码。