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 daha çok doğal dile benzer ve öncelikle komutlara Where-Object ve ilgili diğer adlarına ForEach-Objectwhereve foreach içine kanal eklenen nesne koleksiyonları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 üretir.
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
Property 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 , öğesinin MemberName parametresi ForEach-Objectiç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 memberName parametresine ForEach-Objectgeç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 komutun MemberName parametresine ForEach-Object geçirilir.
.* Değer ArgumentList parametresine geçirilir.
GetFiles() yöntemi, tarafından .*döndürülen her System.IO.DirectoryInfo nesnesi için arama deseni parametresiyle Get-ChildItem çağrılır.
Get-ChildItem /home -Directory | foreach GetFiles .*
Ayrıca bakınız
PowerShell