about_Functions_Advanced

Kısa açıklama

Betikleri kullanarak cmdlet 'lerin oluşturulması için bir yol olan gelişmiş işlevleri tanıtır.

Uzun açıklama

Cmdlet, PowerShell 'in ardışık düzen semantiğine katılan tek bir komuttur. Buna ikili cmdlet 'ler, gelişmiş betik işlevleri, CDXML ve Iş akışları dahildir.

Gelişmiş işlevler, PowerShell işlevi olarak yazılmış cmdlet 'ler oluşturmanızı sağlar. Gelişmiş işlevler, ikili cmdlet yazmak ve derlemek zorunda 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, CmdletBinding cmdlet 'leri gibi davranan işlevleri olarak tanımlamak için özniteliğini kullanır. CmdletBindingÖzniteliği, sınıfı bir cmdlet olarak tanımlamak için derlenmiş cmdlet sınıflarında kullanılan cmdlet özniteliğiyle benzerdir. Bu öznitelik hakkında daha fazla bilgi için bkz. about_Functions_CmdletBindingAttribute.

Aşağıdaki örnek bir adı kabul eden bir işlevi gösterir ve ardından sağlanan adı kullanarak bir selamlama yazdırır. Ayrıca, bu işlevin, derlenmiş bir cmdlet 'in fiil-adı çifti gibi bir fiil (Gönder) ve isim (tebrik) çifti içeren bir adı tanımladığından de dikkat edin. Ancak, işlevlerin bir fiil-adı adına sahip olması gerekmez.

function Send-Greeting
{
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true)]
        [string] $Name
    )

    Process
    {
        Write-Host ("Hello " + $Name + "!")
    }
}

İşlevin parametreleri Parameter özniteliği kullanılarak belirtilir. Bu öznitelik tek başına kullanılabilir veya diğer ad özniteliğiyle veya diğer birçok parametre doğrulama özniteliğiyle birleştirilebilir. Parametrelerin nasıl bildirildiği hakkında daha fazla bilgi için (çalışma zamanında eklenen dinamik parametreler dahil) bkz. about_Functions_Advanced_Parameters.

Önceki işlevin fiili çalışması Işlem bloğunda gerçekleştirilir ve bu, cmdlet 'e geçirilen verileri işlemek için derlenmiş cmdlet 'ler tarafından kullanılan ProcessingRecord yöntemine eşdeğerdir. Başlangıç ve bitiş bloklarıyla birlikte bu blok, about_Functions_Advanced_Methods konusunda açıklanmaktadır.

Gelişmiş işlevler, derlenmiş cmdlet 'lerden aşağıdaki yollarla farklılık gösterir:

  • Bir dize dizisi Boole parametresine bağlandığında gelişmiş işlev parametresi bağlama bir özel durum oluşturmaz.
  • ValidateSet özniteliği ve ValidateModel özniteliği adlandırılmış parametreleri geçiremiyor.
  • Gelişmiş işlevler işlem içinde kullanılamaz.

Ayrıca bkz.

about_Functions

about_Functions_Advanced_Methods

about_Functions_Advanced_Parameters

about_Functions_CmdletBindingAttribute

about_Functions_OutputTypeAttribute