匹配system.string值

时间:2017-04-09 11:16:32

标签: powershell

我使用Powershell来调用命令并将结果作为system.string获取,我需要将结果的一部分作为检查点进行匹配以继续我的脚本。

例如我将结果添加到一个名为$ upgradecomm的变量中,如果我尝试打印它,下面是我得到的:

C:\> $upgradecomm


Host       : HQ-ESXi-Edge-01a.nsx.gss
Output     : {Update Result,    Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.,    Reboot Required: true,    VIBs 
             Installed: VMware_bootbank.........

“上面的输出仍然有更多,但我没有将它们添加到这篇文章中。”

我需要的是匹配所说的部分(更新已成功完成,但系统需要重新启动以使更改生效。)在消息部分中。

如果我只打印输出,我会得到以下内容:

C:\> $upgradecomm.Output
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMware_bootbank.....................

“上面的输出仍然有更多,但我没有将它们添加到这篇文章中。”

我无法达到我需要的地方,因为我说我需要检查是否从结果中得到以下内容(更新成功完成,但系统需要重新启动以使更改生效。)所以我可以继续我的脚本,如果我没有得到我将打印错误。

任何想法都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

如果你不在乎文本的其他内容是什么,那么一个简单的-like就足够了。

$success = "*The update completed successfully, but the system needs to be rebooted for the changes to be effective.*"
if($upgradecomm.Output -like $success){
#success
}

答案 1 :(得分:0)

private int yellowCards; @PostConstruct public void init(){ yellowCards = 0; } // getter/setter - 属性是一个字符串数组。你可以用ex。 Output在数组中搜索与您的关键字匹配的字符串。如果它返回任何,那就是匹配。

-match