【发布时间】:2018-06-22 01:08:17
【问题描述】:
我编写了以下逻辑来检查服务状态:
$status=@()
if($var1 -match "True") {
Write-Output "Service Enabled"
} else {
$status+="Service not Enabled"
Write-Output "Service not Enabled"
}
if($status.count -le 1){
$returnStatus = "PASS"
}else{
$o=$status -join ", "
$returnStatus = "FAIL- $o"
}
$getstatus = $returnStatus
当我设置$var1 = false时,输出应该是Service not Enabled,但它不正确。
似乎问题在于$status 的计数始终为1,即使它是PASS
请建议是否有更好的逻辑来执行相同的逻辑。
【问题讨论】:
-
该代码中没有执行路径会导致
Service not Enabled被写入输出。 -
我已经更新了我的问题
-
我建议使用
$True和$False(注意$)。所以你设置$var1 = $False,然后在字符串值上使用if ($var1)而不是-match进行测试。
标签: powershell powershell-3.0 powershell-4.0 powershell-remoting cmdlet