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
Betikleri kullanarak cmdlet oluşturmanın bir yolu olan gelişmiş işlevleri tanıtır.
Uzun açıklama
Cmdlet, PowerShell'in işlem hattı semantiğine katılan tek bir komuttır. Buna ikili cmdlet'ler, PowerShell gelişmiş işlevleri ve CDXML cmdlet'leri dahildir.
Gelişmiş işlevler, PowerShell işlevi olarak yazılmış cmdlet'ler oluşturmanıza olanak tanır. Gelişmiş işlevler, ikili bir cmdlet yazmak ve derlemek zorunda kalmadan cmdlet oluşturmayı kolaylaştırır. İkili cmdlet'ler, C# gibi bir .NET dilinde yazılmış .NET sınıflarıdır.
Gelişmiş işlevler, cmdlet'ler gibi davranan işlevler olarak tanımlamak için özniteliğini kullanır CmdletBinding
.
CmdletBinding
özniteliği, sınıfı bir cmdlet olarak tanımlamak için derlenmiş cmdlet sınıflarında kullanılan Cmdlet özniteliğine benzer. Bu öznitelik hakkında daha fazla bilgi için bkz . about_Functions_CmdletBindingAttribute.
İşlevin parametreleri, param()
deyiminde bildirilen değişkenlerdir. İsteğe bağlı [Parameter()]
özniteliğini tek başına veya [Alias()]
özniteliği veya parametre doğrulama özniteliklerinden herhangi biriyle birlikte kullanabilirsiniz. Parametreleri bildirme hakkında daha fazla bilgi için bkz. about_Functions_Advanced_Parameters.
Aşağıdaki örnekte, bir ad kabul eden ve ardından sağlanan adı kullanarak bir selamlama yazdıran bir işlev gösterilmektedir. Ayrıca bu işlevin derlenmiş cmdlet'in fiil-isim çifti gibi bir fiil (Gönder) ve isim (Selamlama) çifti içeren bir ad tanımladığını da fark edin. Ancak, işlevlerin fiil-isim adına sahip olması gerekmez.
function Send-Greeting
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$Name
)
process
{
Write-Host ("Hello " + $Name + "!")
}
}
Bu işlev, derleme cmdlet'lerinde kullanılan process
yöntemine eşdeğer olan bloğunda çalışmayı gerçekleştirir.
process
bloğu ve diğer adlandırılmış bloklar about_Functions_Advanced_Methodsiçinde açıklanmıştır.
Gelişmiş işlevler, derlenmiş cmdlet'lerden aşağıdaki yollarla farklıdır:
- Bir dize dizisi bir Boole parametresine bağlı olduğunda gelişmiş işlev parametresi bağlaması özel durum oluşturmaz.
-
ValidateSet
özniteliği veValidatePattern
özniteliği adlandırılmış parametreleri geçiremez. - Gelişmiş işlevler işlemlerde kullanılamaz.
Ayrıca bkz.
PowerShell