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
我编写了以下逻辑来检查服务状态:
$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