Назад | Перейти на главную страницу

Поиск ключей в массиве Powershell

У меня есть массив под названием $ a

echo $a дает:

url                                                               load                                                             
---                                                               ----                                                             
win-coll2.astest.org                                              9                                                                
win-coll.astest.org                                               110                                                              
win-coll4.astest.org                                              110                                                              
win-coll5.astest.org                                              140                                                              
win-coll3.astest.org                                              410 

теперь я хочу знать, содержит ли массив жало, например: win-coll2.astest.org должен привести к true и win-coll7.astest.org должен привести к false

есть ли способ сделать это без foreach?

с foreach:

$IsInArray = false
$ProofString = "win-coll2.astest.org"
foreach( $item in $a){
  if($item.url -eq $ProofString){
    $IsInArray = true
  }
}

В PowerShell v4 (и, возможно, v3) вы можете сделать следующее:

[PS] > $a.url -contains 'win-coll2.astest.org'
True
[PS] > $a.url -contains 'win-coll7.astest.org'
False

В противном случае, я думаю, самый простой и наименее болезненный способ - это либо foreach или foreach-object...