Parametre Bağlama hakkında
Kısa açıklama
Parametre bağlama, PowerShell'in hangi parametre kümesinin kullanıldığını belirlemek ve değerleri bir komutun parametreleriyle ilişkilendirmek (bağlamak) için kullandığı işlemdir. Bu değerler komut satırından ve işlem hattından gelebilir.
Uzun açıklama
Parametre bağlama işlemi, komut satırı bağımsız değişkenlerinin bağlanmasıyla başlar.
Adlandırılmış parametreleri bağla
Komut satırında kısa çizgi ile başlayan, tırnak içine alınmamış belirteçleri bulun. Belirteç iki nokta üst üste ile bitiyorsa bir bağımsız değişken gereklidir. İki nokta üst üste yoksa parametrenin türüne bakın ve bir argümanın gerekli olup olmadığına bakın. Bir değer gerekiyorsa, bağımsız değişken türünü parametrenin gerektirdiği türe dönüştürmeyi deneyin; dönüştürme başarılı olursa parametreyi bağlayın.
Konumsal parametreleri bağlayın
Kullanılmayan komut satırı bağımsız değişkenleri varsa, konumsal parametreleri alan ilişkisiz parametreleri arayın ve bunları bağlamayı deneyin.
Komut satırı bağımsız değişkenlerini bağladıktan sonra PowerShell herhangi bir işlem hattı girişini bağlamaya çalışır. Değerlerin ardışık düzenden bağlanmasının iki yolu vardır. İşlem hattı girişini kabul eden parametreler aşağıdaki özelliklerden birine veya her ikisine sahiptir:
- ValueFromPipeline - İşlem hattındaki değer, türüne göre parametreye bağlanır. Bağımsız değişkenin türü parametrenin türüyle eşleşmelidir.
- ValueFromPipelineByPropertyName - İşlem hattındaki değer, adına göre parametreye bağlanır. İşlem hattındaki nesnenin, parametrenin adıyla veya takma adlarından biriyle eşleşen bir özelliği olması gerekir. Özelliğin türü parametrenin türüyle eşleşmeli veya dönüştürülebilir olmalıdır.
PowerShell işlem hattı girişini aşağıdaki sırayla bağlamaya çalışır:
ValueFromPipelineparametrelerini tür dönüşümü olmadan bağlamayı deneyin:Tam tür eşleşmesi ile ardışık düzenden değere göre bağlanın. Komutun ardışık düzen girişi varsa ve hala ilişkisiz parametreler varsa, türle tam olarak eşleşen bir parametreye bağlanmayı deneyin.
ValueFromPipelineByPropertyNameparametrelerini tür dönüşümü olmadan bağlamayı deneyin:Değer eşleşmesi bulunamazsa ardışık düzenden tam eşleşmeyle ada göre bağlayın. Giriş nesnesinde parametrenin adıyla veya takma adlarından biriyle eşleşen bir özellik arayın. Türler tam olarak eşleşiyorsa parametreyi bağlayın.
İşlem hattı girişi bağlanmamışsa
ValueFromPipelineparametrelerini tür dönüşümüyle bağlamayı deneyin:İşlem hattı girişini gerekli türe dönüştürmeyi deneyin. Dönüştürme başarısız olursa parametre bağlı değildir.
İşlem hattı girişi bağlanmamışsa
ValueFromPipelineByPropertyNameparametrelerini tür dönüşümüyle bağlamayı deneyin:Özelliğin adı, parametrenin adıyla veya takma adlarından biriyle eşleşmelidir. Giriş türü eşleşmiyorsa girişi eşleşen türe dönüştürmeyi deneyin. Dönüştürme başarısız olursa parametre bağlı değildir.
Parametre bağlamayı görselleştirin
Parametre bağlama sorunlarının giderilmesi zor olabilir. Parametre bağlama işlemini görselleştirmek için Trace-Command cmdlet'ini kullanabilirsiniz. Aşağıdaki örnek, basit bir işlem hattı için parametre bağlamanın nasıl izleneceğini gösterir.
Trace-Command -PSHost -Name ParameterBinding -Expression {
Get-Item *.txt | Remove-Item
}
Çıktı, İfade'deki komutlar için parametre bağlama sürecinin her adımını gösterir. Çıktı ayrıntılı olabilir ancak bir parametrenin neden beklendiği gibi bağlanmadığını anlamanıza yardımcı olabilir. Tam bir örnek için Visualize parametre bağlama makalesine bakın.