PowerShell: Where-Object'in Birden Çok Koşulla Kullanımı


Bir nesneyi birden çok koşula göre filtrelemek için çoğu zaman PowerShell'deki Where-Object cmdlet'ini kullanmak isteyebilirsiniz

Bunu yapmak için aşağıdaki yöntemleri kullanabilirsiniz:

1. Yöntem: Where-Object'i -and Operatörü ile kullanın

$my_data | Where-Object { [int]$_.points -gt 20 -and [int]$_.assists -gt 7}

Bu özel örnek, $my_data nesnesini yalnızca points özelliğindeki değerin 20'den büyük olduğu ve asists öğesindeki değerin olduğu satırları görüntüleyecek şekilde filtreler. > özelliği 7'den büyüktür.

2. Yöntem: Where-Object'i -or Operatörüyle kullanın

$my_data | Where-Object { [int]$_.points -gt 30 -or [int]$_.assists -gt 10}

Bu özel örnek, $my_data nesnesini yalnızca points özelliğindeki değerin 30'dan büyük olduğu ve asists öğesindeki değerin olduğu satırları görüntüleyecek şekilde filtreler. > özelliği 10'dan büyüktür.

Aşağıdaki örnekler, aşağıdaki konuma kaydedilen CSV dosyasıyla her yöntemin pratikte nasıl kullanılacağını gösterir:

c:\users\bobbi\nba_data.csv

Bu dosyanın içeriği şöyle görünür:

Dosya, çeşitli basketbol oyuncularının takımını, puanlarını ve asistlerini gösteren üç sütun içerir.

Örnek 1: Where-Object'in -and Operatörüyle Kullanımı

CSV dosyasındaki verileri yalnızca değerin bulunduğu satırları gösterecek şekilde filtrelemek amacıyla Where-Object cmdlet'ini -and operatörüyle birlikte kullanmak için aşağıdaki söz dizimini kullanabiliriz. points özelliği 20'den büyüktür ve asists özelliğindeki değer 7'den büyüktür:

$my_file = "c:\users\bobbi\nba_data.csv"

Import-Csv $my_file | Where-Object { [int]$_.points -gt 20 -and [int]$_.assists -gt 7}

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

Yalnızca çıktıda gösterilen satırların aşağıdaki koşulların her ikisini de karşıladığına dikkat edin:

  • puan özelliğindeki değer 20'den büyüktür.
  • Asist özelliğindeki değer 7'den büyüktür.

Where-Object cmdlet'indeki -and operatörünü kullanarak, satırın gösterilmesi için her iki koşulun da karşılanması gerektiğini belirtiriz.

Örnek 2: Where-Object'in -or Operatörüyle Kullanımı

Yalnızca değerin bulunduğu satırları göstermek amacıyla CSV dosyasındaki verileri filtrelemek için -or operatörüyle Where-Object cmdlet'ini kullanmak için aşağıdaki söz dizimini kullanabiliriz. puan özelliği 30'dan büyük veya asists özelliğindeki değer 10'dan büyük:

$my_file = "c:\users\bobbi\nba_data.csv"

Import-Csv $my_file | Where-Object { [int]$_.points -gt 30 -or [int]$_.assists -gt 10}

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

Çıktıda gösterilen satırların her birinin aşağıdaki koşullardan en az birini karşıladığına dikkat edin:

  • puan özelliğindeki değer 30'dan büyüktür.
  • Asist özelliğindeki değer 10'dan büyüktür.

Where-Object cmdlet'indeki -or operatörünü kullanarak, satırın gösterilmesi için en az bir koşulun karşılanması gerektiğini belirtiriz.

İlgili makaleler