about_Simplified_Syntax

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