Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
Nesne koleksiyonları için betik filtreleri oluşturmanın daha kolay, daha doğal dildeki yollarını açıklar.
Uzun açıklama
Windows PowerShell 3.0'da kullanıma sunulan basitleştirilmiş söz dizimi, betik engellemeleri kullanmadan bazı filtre komutları oluşturmanıza olanak tanır. Basitleştirilmiş söz dizimi, doğal dile daha yakın bir benzerlik gösterir ve öncelikli olarak Where-Object ve ForEach-Object komutlarına veya onların karşılık gelen diğer adları olan where ve foreach'e aktarılan nesne koleksiyonları ile birlikte kullanıldığında yararlıdır.
Bir betik bloğunun içindeki otomatik değişkene $_ başvurmadan bir koleksiyonun üyelerinde (en yaygın olarak bir dizi) bir yöntem kullanabilirsiniz.
Aşağıdaki iki çağrıyı göz önünde bulundurun:
Standart Söz Dizimi
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -FilterScript { $_.FriendlyName -eq 'Verisign' }
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -FilterScript { $_.GetKeyAlgorithm() }
Not
İkinci komutta GetKeyAlgorithm yöntemi koleksiyondaki her nesnede çağrılır. İşlem hattından alınan nesnenin bir GetKeyAlgorithm yöntemi yoksa, komut bir hata oluşturur.
Basitleştirilmiş söz dizimi
Basitleştirilmiş söz dizimi altında, bir koleksiyondaki nesnelerin üyeleri üzerinde çalışan karşılaştırma işleçleri parametre olarak uygulanır. Ayrıca, bir betik bloğu içindeki otomatik değişkene $_ başvurmadan bir koleksiyondaki nesneler üzerinde bir yöntem çağırabilirsiniz. Aşağıdaki iki çağrıyı standart söz dizimi örnekleriyle karşılaştırın:
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -Property FriendlyName -EQ 'Verisign'
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -MemberName GetKeyAlgorithm
Özelliği ve MemberName parametreleri konumsal olduğundan, bunları komutundan atlayabilirsiniz. Diğer adları kullanarak komutları daha da basitleştirebilirsiniz:
dir Cert:\LocalMachine\Root | where FriendlyName -EQ 'Verisign'
dir Cert:\ -Recurse | foreach GetKeyAlgorithm
Her iki söz dizimi de işe yarasa da, basitleştirilmiş söz dizimi, bir betik bloğunun içindeki otomatik değişkene $_ başvurmadan sonuçları döndürür. Basitleştirilmiş söz dizimi daha çok doğal dil deyimine benzer ve anlaşılması daha kolay olabilir.
yöntem adı GetKeyAlgorithm, ForEach-Object parametresi için bağımsız değişken olarak geçirilir. Basitleştirilmiş söz dizimini kullanarak yöntemini çağırdığınızda, yöntem yalnızca söz konusu nesnenin bu yöntemine sahip olması durumunda işlem hattındaki her nesne için çağrılır. Bu nedenle, aynı sonuçları alırsınız ancak hatasız olursunuz.
Sonraki örnekte, Description'ün ForEach-Object parametresine geçirilir. komutu, tarafından döndürülen her Get-Process nesnesinin açıklamasını görüntüler.
Get-Process | foreach Description
Bu örnekte yöntem adı GetFiles, komutunun ForEach-Object parametresine geçirilir.
.* değeri ArgumentList parametresine geçirilir.
GetFiles() yöntemi, .*tarafından döndürülen her System.IO.DirectoryInfo nesnesi için Get-ChildItem arama deseni parametresiyle çağrılır.
Get-ChildItem /home -Directory | foreach GetFiles .*
Ayrıca bakınız
- about_Comparison_Operators
- about_Foreach
- ForEach-Object
- Where-Object
PowerShell