Gelişmiş İşlevler hakkında
Kısa açıklama
Komut dosyalarını kullanarak cmdlet'ler oluşturmanın bir yolu olan gelişmiş işlevleri tanıtır.
Uzun açıklama
Cmdlet, PowerShell'in ardışık düzen anlambilimine katılan tek bir komuttur. Buna ikili cmdlet'ler, gelişmiş komut dosyası işlevleri, CDXML ve İş Akışları dahildir.
Gelişmiş işlevler, PowerShell işlevi olarak yazılan cmdlet'ler oluşturmanıza olanak tanır. Gelişmiş işlevler, ikili cmdlet yazıp derlemeye gerek kalmadan cmdlet'ler 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, onları cmdlet'ler gibi davranan işlevler olarak tanımlamak için CmdletBinding özelliğini kullanır. CmdletBinding özelliği, derlenmiş cmdlet sınıflarında sınıfı bir cmdlet olarak tanımlamak için kullanılan Cmdlet özelliğine benzer. Bu öznitelik hakkında daha fazla bilgi için bkz. about_Functions_CmdletBindingAttribute.
Aşağıdaki örnekte, bir adı kabul eden ve ardından sağlanan adı kullanarak bir karşılama mesajı yazdıran bir işlev gösterilmektedir. Ayrıca bu işlevin, derlenmiş bir cmdlet'in fiil-isim çifti gibi bir fiil (Gönder) ve isim (Tebrik) çifti içeren bir adı tanımladığına da dikkat edin. Ancak işlevlerin bir fiil-isim ismine sahip olması zorunlu değildir.
function Send-Greeting
{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[string] $Name
)
Process
{
Write-Host ("Hello " + $Name + "!")
}
}
Fonksiyonun parametreleri Parameter özelliği kullanılarak bildirilir. Bu öznitelik tek başına kullanılabilir veya Alias özniteliğiyle veya diğer birçok parametre doğrulama özniteliğiyle birleştirilebilir. Parametrelerin nasıl bildirileceği hakkında daha fazla bilgi için (çalışma zamanında eklenen dinamik parametreler dahil), bkz. about_Functions_Advanced_Parameters.
Önceki işlevin asıl çalışması, derlenmiş cmdlet'ler tarafından cmdlet'e iletilen verileri işlemek için kullanılan ProcessingRecord yöntemine eşdeğer olan process bloğunda gerçekleştirilir. Bu blok, begin ve end bloklarıyla birlikte about_Functions_Advanced_Methods konusunda açıklanmaktadır.
Gelişmiş işlevler, derlenmiş cmdlet'lerden aşağıdaki açılardan farklılık gösterir:
- Gelişmiş işlev parametresi bağlama, bir dize dizisi bir Boolean parametresine bağlandığında bir istisna oluşturmaz.
ValidateSetözelliği veValidatePatternözelliği, adlandırılmış parametreleri iletemez.- İşlemlerde gelişmiş işlevler kullanılamaz.
Ayrıca bakınız
- about_Functions
- about_Functions_Advanced_Methods
- about_Functions_Advanced_Parameters
- about_Functions_CmdletBindingAttribute
- about_Functions_OutputTypeAttribute