【问题标题】:ExitCode Test in PowershellPowershell 中的 ExitCode 测试
【发布时间】:2016-07-11 09:08:42
【问题描述】:

团队,我写了安装一些软件的程序,然后它在下面显示退出代码。

$SoftwareInstall.ExitCode

它返回 0 和其他值取决于安装的方式。仅当退出代码为 0 的成功时,我才有其他表达式要执行。如何使用 if 条件设置检查。您能否建议以下方法是否正确

if ( $SoftwareInstall.ExitCode -eq 0){
    "Software Installed successfully "  
     #Then some other code I'll put here

     }
else{
    "Software did not installed"
}

请提出建议。

【问题讨论】:

  • 是的,这是正确的方法
  • 谢谢!会做的。

标签: windows powershell window powershell-2.0 powershell-3.0


【解决方案1】:

您的方法是一种方法,但我建议您使用 Switch 语句来处理返回值。如果您使用 MSI 文件进行安装,那么您可以通过这种方式轻松处理多个返回代码 -

#Check MSIEXEC return value            
    switch ($SoftwareInstall.ExitCode ){
        #If the uninstallation succeeded
        0    { }
        #If the Installation succeeded but requires a reboot
        3010 { }
        #If the uninstallation failed
        default { }
    }

以这种方式处理返回代码可以使代码在将来更易于阅读和修改。它还允许您处理多个不同的错误代码,而无需太多嵌套的 if 或 if-else 块。

【讨论】:

  • 代码只安装最新的msi,如果成功就会启动服务。这就是为什么我没有考虑切换,因为无论如何我需要在重新安装后启动我的服务。每次我检查并得到 0 作为成功的返回码请建议,
  • 如果您确定只需要两个代码块,那么您的if ( $SoftwareInstall.ExitCode -eq 0) 绝对足够了。但是,如果您需要更多,那么我肯定会推荐一个 switch 语句。例如,我有 Powershell 代码,它可以自动安装和卸载大约 10 个包。如果任何操作成功但需要重新启动,则 switch 语句可以在继续下一个包之前自动执行该操作。不过,这对于您的需求来说可能有点过头了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多