对于Powershell解析无法正常工作

时间:2018-06-22 01:08:18

标签: powershell powershell-v3.0 powershell-v4.0 powershell-remoting cmdlet

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

$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 请建议是否有更好的逻辑来执行相同的逻辑。

1 个答案:

答案 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