我使用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.....................
“上面的输出仍然有更多,但我没有将它们添加到这篇文章中。”
我无法达到我需要的地方,因为我说我需要检查是否从结果中得到以下内容(更新成功完成,但系统需要重新启动以使更改生效。)所以我可以继续我的脚本,如果我没有得到我将打印错误。
任何想法都将受到赞赏。
答案 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