Powershell 的解析无法正常工作

Parsing not working correctly for Powershell

我编写了以下逻辑来检查服务状态:

$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 做同样的逻辑有没有更好的逻辑请指教

你的变量名有错别字 $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