使用if语句比较数组的值

时间:2017-10-17 19:42:01

标签: powershell

我无法检查我的$ 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!"
}

1 个答案:

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