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.csvBu 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.


