我无法检查我的$ Grades数组是否属于$ Values数组的范围,我该如何解决这个问题呢?
$Global:Values = 1..100
#$Global:Grades[0] = 5000 $Global:Grades[1] = 30
if($Global:Grades[0] -gt $Global:Values[0] -and $Global:Grades[0] -lt $Global:Values[99])
{
Write-Host "Works!"
}
答案 0 :(得分:0)
您可以使用array:3 [▼
0 => array:5 [▼
0 => {#215 ▼
+"DefaultTimeLength": 40
+"ProgramID": 4
+"NumDeducted": 1
+"ID": 245
+"Name": "30-Swedish-Massage"
}
1 => {#216 ▼
+"DefaultTimeLength": 70
+"ProgramID": 4
+"NumDeducted": 1
+"ID": 246
+"Name": "60-Swedish-Massage"
}
2 => {#217 ▶}
3 => {#218 ▶}
4 => {#219 ▶}
]
1 => array:2 [▶]
2 => array:10 [▶]
]
cmdlet(别名Where-Object
)过滤数组:
where
为我生成此输出:
These grades are not valid: 5000
注释
$Values = 1..100
$Grades = 5000,30
$GradesNotInRange = $Grades | where { $Values -notcontains $_ }
if ($GradesNotInRange) {
"These grades are not valid: $GradesNotInRange"
} else {
"All grades are valid."
}
范围。如果是时候使用它,你就会知道。只要你不是百分百肯定,就不要使用它。 (我个人从来没有遇到过使用它的情况。我怀疑你会这样。)Global
运算符检查数组中的完全匹配。 -contains
反其道而行之。-notcontains
条件匹配时,where
将为$GradesNotInRange
,并且$null
检查中将null视为false。