about_Functions_Advanced
Představuje pokročilé funkce, které představují způsob, jak vytvářet rutiny pomocí skriptů.
Rutina je jeden příkaz, který se účastní sémantiky kanálu PowerShellu. To zahrnuje binární rutiny, pokročilé funkce PowerShellu a rutiny CDXML.
Pokročilé funkce umožňují vytvářet rutiny, které jsou napsané jako funkce PowerShellu. Pokročilé funkce usnadňují vytváření rutin bez nutnosti psát a kompilovat binární rutinu. Binární rutiny jsou třídy .NET napsané v jazyce .NET, jako je C#.
Pokročilé funkce používají CmdletBinding
atribut k jejich identifikaci jako funkce, které fungují jako rutiny. Atribut CmdletBinding
je podobný atributu rutiny, který se používá ve zkompilovaných třídách rutin k identifikaci třídy jako rutiny. Další informace o tomto atributu najdete v tématu about_Functions_CmdletBindingAttribute.
Parametry funkce jsou proměnné deklarované v příkazu param()
. Volitelný atribut [Parameter()]
můžete použít samostatně nebo v kombinaci s atributem [Alias()]
nebo libovolným atributem ověření parametru. Další informace o deklarování parametrů naleznete v tématu about_Functions_Advanced_Parameters.
Následující příklad ukazuje funkci, která přijímá název a pak vytiskne pozdrav pomocí zadaného názvu. Všimněte si také, že tato funkce definuje název, který obsahuje dvojici sloves (Send) a jmenné jméno (Greeting), jako je dvojice sloves-podstatné jméno zkompilované rutiny. Funkce ale nemusí mít název slovesa-podstatné jméno.
function Send-Greeting
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$Name
)
process
{
Write-Host ("Hello " + $Name + "!")
}
}
Tato funkce provádí práci v bloku process
, který odpovídá metodě ProcessingRecord použitou v kompilovaných rutinách. Blok process
a další pojmenované bloky jsou popsány v about_Functions_Advanced_Methods.
Pokročilé funkce se liší od zkompilovaných rutin následujícími způsoby:
- Vazba rozšířeného parametru funkce nevyvolá výjimku, pokud je pole řetězců svázané s logickým parametrem.
- Atribut
ValidateSet
aValidatePattern
atribut nemohou předat pojmenované parametry. - Pokročilé funkce se nedají použít v transakcích.
Zpětná vazba k produktu PowerShell
PowerShell je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: