Megosztás a következőn keresztül:


about_Functions_Advanced

Rövid leírás

Olyan speciális függvényeket vezet be, amelyekkel parancsmagokat hozhat létre szkriptek használatával.

Hosszú leírás

A parancsmagok egyetlen parancsok, amelyek részt vesznek a PowerShell folyamatszemantikájának használatában. Ide tartoznak a bináris parancsmagok, a PowerShell speciális függvényei és a CDXML-parancsmagok.

A speciális függvényekkel PowerShell-függvényként írt parancsmagokat hozhat létre. A speciális függvények megkönnyítik a parancsmagok létrehozását bináris parancsmagok írása és fordítása nélkül. A bináris parancsmagok .NET-osztályok, amelyek .NET-nyelven, például C#-ban vannak megírva.

A speciális függvények az CmdletBinding attribútum használatával azonosítják őket parancsmagként működő függvényekként. Az CmdletBinding attribútum hasonlít a lefordított parancsmagosztályokban használt parancsmagattribútumhoz, amely az osztályt parancsmagként azonosítja. További információ erről az attribútumról: about_Functions_CmdletBindingAttribute.

A függvény paraméterei a param() utasításban deklarált változók. Az opcionális [Parameter()] attribútumot használhatja önállóan, vagy a [Alias()] attribútummal vagy a paraméterérvényesítési attribútumok bármelyikével együtt. További információ a paraméterek deklarálásáról: about_Functions_Advanced_Parameters.

Az alábbi példa egy nevet elfogadó függvényt mutat be, majd a megadott névvel egy üdvözlést nyomtat ki. Azt is megfigyelheti, hogy ez a függvény egy olyan nevet határoz meg, amely tartalmaz egy igét (Küldés) és egy főnév (Greeting) párt, például egy lefordított parancsmag ige-főnév párját. A függvények azonban nem szükségesek az igenévhez.

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

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

Ez a függvény elvégzi a munkát a process blokkban, amely egyenértékű a lefordított parancsmagokban használt ProcessingRecord metódusával. A process blokkot és a többi elnevezett blokkot a about_Functions_Advanced_Methodsismerteti.

A speciális függvények a következő módokon térnek el a lefordított parancsmagoktól:

  • A speciális függvényparaméter kötése nem jelent kivételt, ha egy sztringtömb logikai paraméterhez van kötve.
  • Az ValidateSet attribútum és az ValidatePattern attribútum nem tud elnevezett paramétereket átadni.
  • A speciális függvények nem használhatók tranzakciókban.

Lásd még