我编写了以下逻辑来检查服务状态:
$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
请建议是否有更好的逻辑来执行相同的逻辑。
答案 0 :(得分:1)
变量名$returnsStatus
/ $returnStatus
中有错字
这会导致最终输出$getstatus
不一致。
请修正变量名,然后重试。
$status=@()
if($var1 -match "True") {
Write-Output "Service Enabled"
} else {
$status+="Service not Enabled"
# Fixed Message
Write-Output "Service not Enabled"
}
# Fix comparison from -le to -lt
if($status.count -lt 1){
$returnStatus = "PASS"
}else{
$o=$status -join ", "
$returnStatus = "FAIL- $o"
}
$getstatus = $returnStatus