12. atributů
Objekt atributu přidruží předdefinované systémové informace k cílovému prvku, který může být blok param nebo parametrem (§ 8,10). Každý objekt atributu má typ atributu.
Informace poskytované atributem se také označují jako metadata. Metadata lze prozkoumat příkazem nebo spouštěcím prostředím a řídit tak, jak příkaz zpracovává data nebo před spuštěním pomocí externích nástrojů k řízení toho, jak je samotný příkaz zpracován nebo udržován.
U stejného cílového prvku lze použít více atributů.
specifikace atributu 12,1
Tip
~opt~
Zápis v definicích syntaxe označuje, že lexikální entita je v syntaxi nepovinná.
attribute-list:
attribute
attribute-list new-lines~opt~ attribute
attribute:
[ new-lines~opt~ attribute-name ( attribute-arguments new-lines~opt~ ) new-lines~opt~ ]
type-literal
attribute-name:
type-spec
attribute-arguments:
attribute-argument
attribute-argument new-lines~opt~ ,
attribute-arguments
attribute-argument:
new-lines~opt~ expression
new-lines~opt~ simple-name
new-lines~opt~ simple-name = new-lines~opt~ expression
Atribut se skládá z názvu atributu a volitelného seznamu pozičních a pojmenovaných argumentů.
Poziční argumenty (pokud existují) předcházejí pojmenované argumenty. Pojmenovaný argument se skládá z jednoduchého názvu, volitelně následovaný rovnítkem a následovaný výrazem. Pokud je výraz vynechán, hodnota $true
se předpokládá.
Atribut Name je rezervovaný typ atributu (§ 12,3) nebo nějaký typ atributu definovaný implementací.
instance atributů 12,2
Instance atributu je objekt typu atributu. Instance představuje atribut v době běhu.
Chcete-li vytvořit objekt některého typu atributu a, použijte zápis A()
. Atribut je deklarován uzavřením jeho instance uvnitř []
, jako v [A()]
. Některé typy atributů mají poziční a pojmenované parametry (§ 8,14), stejně jako funkce a rutiny. Třeba
[A(10,IgnoreCase=$true)]
zobrazuje instanci typu A , která je vytvořena pomocí pozičního parametru, jehož hodnota argumentu je 10, a pojmenovaný parametr, IgnoreCase, jehož hodnota argumentu je $true
.
12,3 rezervované atributy
Atributy popsané v následujících částech se dají použít k rozšíření nebo úpravě chování funkcí PowerShellu, filtrů, skriptů a rutin.
12.3.1 atribut alias
Tento atribut se používá v parametru skriptu k určení alternativního názvu pro parametr. Parametr může mít několik aliasů a každý název aliasu musí být v rámci seznamu parametrů jedinečný. Jedním z možných použití je mít různé názvy pro parametr v různých sadách parametrů (viz ParameterSetName).
Argument atributu má typ String [].
Zvažte volání Test1
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[Parameter(Mandatory = $true)]
[Alias("CN")]
[Alias("name", "system")]
[string[]] $ComputerName
)
Test1 "Mars", "Saturn" # pass argument by position
Test1 -ComputerName "Mars", "Saturn" # pass argument by name
Test1 -CN "Mars", "Saturn" # pass argument using first alias
Test1 -name "Mars", "Saturn" # pass argument using second alias
Test1 -sys "Mars", "Saturn" # pass argument using third alias
Zvažte volání Test2
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)]
[Alias('PSPath')]
[string] $LiteralPath
)
Get-ChildItem "E:\*.txt" | Test2 -LiteralPath { $_ ; "`n`t";
$_.FullName + ".bak" }
Get-ChildItem "E:\*.txt" | Test2
Rutina Get-ChildItem
(alias Dir
) přičítá k objektu, který vrací nový NoteProperty typu string
s názvem PSPath.
12.3.2 atribut AllowEmptyCollection
Tento atribut se používá v parametru skriptu pro povolení prázdné kolekce jako argument povinného parametru.
Zvažte volání Test
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[parameter(Mandatory = $true)]
[AllowEmptyCollection()]
[string[]] $ComputerName
)
Test "Red", "Green" # $computerName has Length 2
Test "Red" # $computerName has Length 1
Test -comp @() # $computerName has Length 0
12.3.3 atribut AllowEmptyString
Tento atribut se používá v parametru skriptu pro povolení prázdného řetězce jako argument povinného parametru.
Zvažte volání Test
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[parameter(Mandatory = $true)]
[AllowEmptyString()]
[string] $ComputerName
)
Test "Red" # $computerName is "Red"
Test "" # empty string is permitted
Test -comp "" # empty string is permitted
12.3.4 atribut AllowNull má
Tento atribut se používá v parametru skriptu pro povolení $null jako argument povinného parametru, pro který není k dispozici žádný implicitní převod.
Zvažte test volání funkce, který má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[parameter(Mandatory = $true)]
[AllowNull()]
[int[]] $Values
)
Test 10, 20, 30 # $values has Length 3, values 10, 20, 30
Test 10, $null, 30 # $values has Length 3, values 10, 0, 30
Test -val $null # $values has value $null
Všimněte si, že druhý výše uvedený případ tento atribut nepotřebuje; implicitní převod z $null
na typ int již existuje.
12.3.5 atribut CmdletBinding
Tento atribut se používá v seznamu atributů bloku funkce k označení toho, že funkce funguje podobně jako rutina. Konkrétně umožňuje funkcím přístup k několika metodám a vlastnostem prostřednictvím proměnné $PsCmdlet pomocí rozhraní Begin, Process a koncových pojmenovaných bloků (§ 8.10.7).
Pokud je tento atribut přítomen, Poziční argumenty, které nemají odpovídající poziční parametry, způsobují neúspěch vazby parametru a $args nejsou definovány. (Bez tohoto atributu $args by převzaly jakékoli hodnoty pozičních argumentů, které se neshodují.)
Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
SupportsShouldProcess (s názvem) | Typ: bool; Výchozí hodnota: $false Určuje, zda funkce podporuje volání metody ShouldProcess, která se používá k zobrazení výzvy uživateli k zadání zpětné vazby předtím, než funkce změní systém. Hodnota $true označuje, že má. Hodnota $false označuje, že ne. |
ConfirmImpact (s názvem) | Typ: řetězec; Výchozí hodnota: "střední" Určuje úroveň dopadu provedené akce. Volání metody ShouldProcess zobrazí výzvu k potvrzení pouze v případě, že je argument ConfirmImpact větší nebo roven hodnotě proměnné předvolby $ConfirmPreference. Možné hodnoty tohoto argumentu jsou: Žádné: potlačí všechny požadavky na potvrzení. Nízká: prováděná akce má nízké riziko ztráty dat. Střední: prováděná akce má středně rizikové riziko ztráty dat. Vysoká: prováděná akce má vysoké riziko ztráty dat. Hodnota $ConfirmPreference může být nastavena tak, aby bylo možné potvrdit pouze rutiny se stejnou nebo vyšší úrovní dopadu, než budou moci provést jejich provoz. Například pokud je $ConfirmPreference nastavené na střední, můžou rutiny se střední nebo vysokou úrovní dopadu požádat o potvrzení. Žádosti z rutin s nízkou úrovní dopadu jsou potlačeny. |
DefaultParameterSetName (s názvem) | Typ: řetězec; Výchozí hodnota: "__AllParameterSets" Určuje parametr nastavený pro použití, pokud nelze určit z argumentů. Podívejte se na pojmenovaný argument ParameterSetName v parametru atributu ([§ 12.3.7] [§ 12.3.7]). |
PositionalBinding (s názvem) | Typ: bool; Výchozí hodnota: $true Určuje, jestli je podporovaná pozice vazby. Hodnota tohoto argumentu je ignorována, pokud některé parametry určují jiné než výchozí hodnoty buď pro umístění pojmenovaného argumentu, nebo pro pojmenovaný argument ParameterSetName v parametru atributu ([§ 12.3.7] [§ 12.3.7]). V opačném případě, pokud je argument $false, žádné parametry nejsou pozice, jinak jsou k těmto parametrům přiřazeny pozice v závislosti na pořadí, ve kterém jsou parametry zadány. |
Tady je příklad rozhraní pro použití tohoto atributu:
[CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = "Low")]
param ( ... )
begin { ... }
Get-process { ... }
end { ... }
12.3.6 atribut OutputType
Tento atribut se používá v seznamu atributů- bloku param pro určení vrácených typů. Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
Typ (pozice 0) | Typ: String [] nebo pole typů literálů Seznam typů vrácených hodnot. |
ParameterSetName (s názvem) | Typ: String [] Určuje sady parametrů, které vracejí typy označené odpovídajícími prvky parametru typu. |
Tady je několik příkladů použití tohoto atributu:
[OutputType([int])] param ( ... )
[OutputType("double")] param ( ... )
[OutputType("string","string")] param ( ... )
12.3.7 atribut parametru
Tento atribut se používá ve parametrech skriptu. Následující pojmenované argumenty slouží k definování charakteristik parametru:
Parametr | Účel |
---|---|
HelpMessage (s názvem) | Typ: řetězec Tento argument určuje zprávu, která by měla obsahovat krátký popis parametru. Tato zpráva se používá v uživatelsky definovaném způsobu implementace, pokud se funkce nebo rutina spustí, ale povinný parametr, který má HelpMessage, nemá odpovídající argument. Následující příklad ukazuje deklaraci parametru, která poskytuje popis parametru. param ([parametr (povinný = $true, Windows PowerShell: není-li požadovaný parametr zadán, modul runtime vyzve uživatele k zadání hodnoty parametru. Dialogové okno výzvy obsahuje text HelpMessage. |
Povinná (pojmenovaná) | Typ: bool; Výchozí hodnota: $false Tento argument určuje, zda je parametr v dané sadě parametrů vyžadován (viz ParameterSetName argument níže). Hodnota $true označuje, že je. Hodnota $false označuje, že není. param ([parametr (povinný = $true)] Windows PowerShell: není-li požadovaný parametr zadán, modul runtime vyzve uživatele k zadání hodnoty parametru. Dialogové okno výzvy obsahuje text HelpMessage, pokud existuje. |
ParameterSetName (s názvem) | Typ: řetězec; Výchozí hodnota: "__AllParameterSets" Je možné napsat jednu funkci nebo rutinu, která může provádět různé akce v různých scénářích. Vystavuje různé skupiny parametrů v závislosti na akci, kterou chce provést. Tyto skupiny parametrů se nazývají sady parametrů. Argument ParameterSetName určuje sadu parametrů, do které parametr patří. Toto chování znamená, že každá sada parametrů musí mít jeden jedinečný parametr, který není členem žádné jiné sady parametrů. Pro parametry, které patří do více sad parametrů, přidejte atribut parametru pro každou sadu parametrů. To umožňuje, aby byl parametr pro každou sadu parametrů definován odlišně. Sada parametrů, která obsahuje více pozičních parametrů, musí definovat jedinečné pozice pro každý parametr. Žádné dva poziční parametry nemohou určovat stejné umístění. Pokud pro parametr není zadána žádná sada parametrů, parametr patří do všech sad parametrů. Je-li definována více sad parametrů, je pro určení výchozí sady parametrů použit pojmenovaný argument DefaultParameterSetName atributu CmdletBinding ([§ 12.3.5] [§ 12.3.5]). Modul runtime používá výchozí sadu parametrů, pokud nemůže určit parametr nastavený na použití na základě informací poskytnutých příkazem nebo vyvolá výjimku, pokud nebyla zadána žádná výchozí sada parametrů. Následující příklad ukazuje test funkce s deklarací parametru dvou parametrů, které patří do dvou různých sad parametrů, a třetí parametr, který patří do obou sad: param ([parametr (povinný = $true, [Parametr (povinný = $true, [Parametr (povinný = $true, if ($PsCmdlet. ParameterSetName-EQ "počítač") ElseIf ($PsCmdlet. ParameterSetName-EQ "uživatel") Test-ComputerName "Mars", "Venus"-SharedParam 10 |
Pozice (s názvem) | Typ: int Tento argument určuje pozici parametru v seznamu argumentů. Pokud není tento argument zadán, musí být název parametru nebo jeho alias explicitně zadán, pokud je parametr nastaven. Pokud žádný z parametrů funkce nemá pozice, pozice jsou přiřazeny jednotlivým parametrům v závislosti na pořadí, ve kterém byly přijaty. Následující příklad ukazuje deklaraci parametru, jehož hodnota musí být zadána jako první argument při volání funkce. param ([parametr (pozice = 0)] |
ValueFromPipeline (s názvem) | Typ: bool; Výchozí hodnota: $false Tento argument určuje, zda parametr přijímá vstup z objektu kanálu. Hodnota $true označuje, že má. Hodnota $false označuje, že není. Zadejte $true, pokud funkce nebo rutina přistupuje k kompletnímu objektu, nikoli pouze k vlastnosti objektu. ValueFromPipeline jako $true může deklarovat pouze jeden parametr v sadě parametrů. Následující příklad ukazuje deklaraci parametru povinného parametru $ComputerName, který přijímá vstupní objekt, který je předán funkci z kanálu. param ([parametr (povinný = $true, Příklad použití tohoto parametru ve spojení s atributem alias naleznete v tématu [§ 12.3.1] [§ 12.3.1]. |
ValueFromPipelineByPropertyName (s názvem) | Typ: bool; Výchozí hodnota: $false Tento argument určuje, zda parametr přebírá svou hodnotu z vlastnosti objektu kanálu, který má buď stejný název, nebo stejný alias jako tento parametr. Hodnota $true označuje, že má. Hodnota $false označuje, že není. Zadejte $true, pokud jsou splněny následující podmínky: parametr přistupuje k vlastnosti objektu s kanálem a vlastnost má stejný název jako parametr nebo vlastnost má stejný alias jako parametr. Parametr, který má ValueFromPipelineByPropertyName nastaveno na $true nemusí mít parametr ve stejné sadě s ValueFromPipeline nastavenou na $true. Pokud má funkce $ComputerName parametr a objekt s předaným kanálem má vlastnost ComputerName, je hodnota vlastnosti ComputerName přiřazena k parametru $ComputerName funkce: param ([parametr (povinný = $true, Více parametrů v sadě parametrů může definovat ValueFromPipelineByPropertyName jako $true. I když jeden vstupní objekt nelze svázat s více parametry, různé vlastnosti v tomto vstupním objektu mohou být vázány na různé parametry. Při vázání parametru s vlastností vstupního objektu nejprve vyhledá běhové prostředí vlastnost se stejným názvem, jako má parametr. Pokud taková vlastnost neexistuje, běhové prostředí hledá aliasy pro daný parametr v pořadí deklarace, přičemž vybírá první alias, pro který vlastnost existuje. Process-Date funkce [Parametr (ValueFromPipelineByPropertyName = $true)] [Parametr (ValueFromPipelineByPropertyName = $true)] zpracovat {... } |
ValueFromRemainingArguments (s názvem) | Typ: bool; Výchozí hodnota: $false Tento argument určuje, zda parametr akceptuje všechny zbývající argumenty, které nejsou vázány na parametry funkce. Hodnota $true označuje, že má. Hodnota $false označuje, že není. Následující příklad ukazuje parametr $others, který přijímá všechny zbývající argumenty vstupního objektu, který je předán testu funkce: param ([Parameter (povinný = $true)] [int] $p 1, Test 10 20 # $others má délku 0 |
Implementace může definovat i další atributy.
K dispozici jsou také následující atributy:
- Hodnoty helpmessagebasename: Určuje umístění, kde se nacházejí identifikátory prostředků. Tento parametr například může určovat sestavení prostředků, které obsahuje zprávy s nápovědu, které mají být lokalizovány.
- HelpMessageResourceId: Určuje identifikátor prostředku pro zprávu s nápovědu.
12.3.8 atribut PSDefaultValue
Tento atribut se používá v parametru skriptu k poskytnutí dalších informací o parametru. Atribut se používá v definovaném způsobu implementace. Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
Help (pojmenovaná) | Typ: řetězec Tento argument určuje zprávu, která má obsahovat krátký popis výchozí hodnoty parametru. Tato zpráva se používá v uživatelsky definovaném způsobu implementace. Windows PowerShell: zpráva se používá jako součást popisu parametru pro téma nápovědy zobrazené pomocí rutiny [Get-help](xref:Microsoft.PowerShell.Core.Get-Help) . |
Hodnota (pojmenovaná) | Typ: Object Tento argument určuje hodnotu, která je určena jako výchozí hodnota parametru. Hodnota se používá v uživatelsky definovaném způsobu implementace. Windows PowerShell: hodnota se používá jako součást popisu parametru pro téma nápovědy zobrazené pomocí rutiny [Get-help](xref:Microsoft.PowerShell.Core.Get-Help), když není zadaná vlastnost help. |
12.3.9 atribut SupportsWildcards
Tento atribut se používá v parametru skriptu k poskytnutí dalších informací o parametru. Atribut se používá v definovaném způsobu implementace.
Tento atribut se používá jako součást popisu parametru pro téma nápovědy zobrazené pomocí rutiny Get-Help .
12.3.10 atribut ValidateCount
Tento atribut se používá v parametru skriptu k určení minimálního a maximálního počtu hodnot argumentů, které může parametr přijmout. Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
MinLength (pozice 0) | Typ: int Tento argument určuje minimální povolený počet hodnot argumentů. |
MaxLength (pozice 1) | Typ: int Tento argument určuje maximální povolený počet hodnot argumentů. |
V případě absence tohoto atributu může být seznam hodnot odpovídajícího argumentu parametru libovolná délka.
Zvažte test volání funkce, který má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[ValidateCount(2, 5)]
[int[]] $Values
)
Temp 10, 20, 30
Temp 10 # too few argument values
Temp 10, 20, 30, 40, 50, 60 # too many argument values
[ValidateCount(3, 4)]$Array = 1..3
$Array = 10 # too few argument values
$Array = 1..100 # too many argument values
12.3.11 atribut ValidateLength
Tento atribut se používá v parametru skriptu nebo v proměnné k určení minimální a maximální délky argumentu parametru, který musí mít typ String. Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
MinLength (pozice 0) | Typ: int Tento argument určuje minimální povolený počet znaků. |
MaxLength (pozice 1) | Typ: int Tento argument určuje maximální povolený počet znaků. |
V případě absence tohoto atributu může být odpovídající argument parametru libovolná délka.
Zvažte test volání funkce, který má následující blok param a který je volán tak, jak je znázorněno níže:
param ( [parameter(Mandatory = $true)]
[ValidateLength(3,6)]
[string[]] $ComputerName )
Test "Thor","Mars" # length is ok
Test "Io","Mars" # "Io" is too short
Test "Thor","Jupiter" # "Jupiter" is too long
12.3.12 atribut ValidateNotNull
Tento atribut se používá v proměnné nebo parametru skriptu k určení, že argument parametru nemůže být $null
nebo být kolekce obsahující element s hodnotou null.
Zvažte volání Test
funkce, které má následující blok param a který se nazývá "zobrazeno:
param (
[ValidateNotNull()]
[string[]] $Names
)
Test "Jack", "Jill" # ok
Test "Jane", $null # $null array element value not allowed
Test $null # null array not allowed
[ValidateNotNull()]$Name = "Jack" # ok
$Name = $null # null value not allowed
12.3.13 atribut ValidateNotNullOrEmpty
Tento atribut se používá v parametrech skriptu nebo v proměnné pro určení, že argument nemůže být $null, prázdný řetězec nebo prázdné pole nebo kolekce obsahující $null nebo prázdný řetězec elementu.
Zvažte volání Test
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[ValidateNotNullOrEmpty()]
[string[]] $Names
)
Test "Jack", "Jill" # ok
Test "Mary", "" # empty string not allowed
Test "Jane", $null # $null array element value not allowed
Test $null # null array not allowed
Test @() # empty array not allowed
[ValidateNotNullOrEmpty()]$Name = "Jack" # ok
$Name = "" # empty string not allowed
$Name = $null # null value not allowed
12.3.14 atribut ValidatePattern
Tento atribut se používá v parametru skriptu nebo v proměnné k určení regulárního výrazu pro porovnání vzoru argumentu parametru. Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
RegexString (pozice 0) | Typ: Řetězec Regulární výraz, který se používá k ověření argumentu parametru |
Možnosti (pojmenované) | Typ: Regular-Expression-Option Povolené hodnoty naleznete v tématu [§ 4.2.6.4] [§ 4.2.6.4]. |
Pokud je argumentem kolekce, musí každý prvek v kolekci odpovídat vzoru.
Zvažte volání Test
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[ValidatePattern('\^[A-Z][1-5][0-9]$')]
[string] $Code,
[ValidatePattern('\^(0x|0X)([A-F]|[a-f]|[0-9])([A-F]|[a-f]|[0-9])$')]
[string] $HexNum,
[ValidatePattern('\^[+|-]?[1-9]$')]
[int] $Minimum
)
Test -c A12 # matches pattern
Test -c A63 # does not match pattern
Test -h 0x4f # matches pattern
Test -h "0XB2" # matches pattern
Test -h 0xK3 # does not match pattern
Test -m -4 # matches pattern
Test -m "+7" # matches pattern
Test -m -12 # matches pattern, but is too long
[ValidatePattern('\^[a-z][a-z0-9]\*$')]$ident = "abc"
$ident = "123" # does not match pattern
12.3.15 atribut ValidateRange
Tento atribut se používá v parametru skriptu nebo v proměnné k určení minimální a maximální hodnoty argumentu parametru. Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
MinRange (pozice 0) | Typ: Object Tento argument určuje minimální povolenou hodnotu. |
MaxRange (pozice 1) | Typ: Object Tento argument určuje maximální povolenou hodnotu. |
V případě absence tohoto atributu neexistuje žádné omezení rozsahu.
Zvažte volání Test1
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[parameter(Mandatory = $true)]
[ValidateRange(1, 10)]
[int] $StartValue
)
Test1 2
Test1 -st 7
Test1 -3 # value is too small
Test1 12 # value is too large
Zvažte volání funkce test2, která má následující blok parametrů a volání:
param (
[parameter(Mandatory = $true)]
[ValidateRange("b", "f")]
[string] $Name
)
Test2 "Bravo" # ok
Test2 "Alpha" # value compares less than the minimum
Test2 "Hotel" # value compares greater than the maximum
Zvažte volání Test3
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[parameter(Mandatory = $true)]
[ValidateRange(0.002, 0.003)]
[double] $Distance
)
Test3 0.002
Test3 0.0019 # value is too small
Test3 "0.005" # value is too large
[ValidateRange(13, 19)]$teenager = 15
$teenager = 20 # value is too large
12.3.16 atribut ValidateScript
Tento atribut se používá v parametrech skriptu nebo v proměnné pro určení skriptu, který se má použít k ověření argumentu parametru.
Argument na pozici 1 je výraz bloku skriptu.
Zvažte volání Test
funkce, které má následující blok param a který je volán tak, jak je znázorněno níže:
param (
[Parameter(Mandatory = $true)]
[ValidateScript( { ($_ -ge 1 -and $_ -le 3) -or ($_ -ge 20) })]
[int] $Count
)
Test 2 # ok, valid value
Test 25 # ok, valid value
Test 5 # invalid value
Test 0 # invalid value
[ValidateScript({$_.Length --gt 7})]$password = "password" # ok
$password = "abc123" # invalid value
12.3.17 atribut ValidateSet
Tento atribut se používá v parametru skriptu nebo v proměnné pro určení sady platných hodnot pro argument parametru. Následující argumenty slouží k definování charakteristik parametru:
Název parametru | Účel |
---|---|
ValidValues (pozice 0) | Typ: String [] Sada platných hodnot. |
IgnoreCase (pojmenovaný) | Typ: bool; Výchozí hodnota: $true Určuje, jestli se mají pro parametry řetězce typu ignorovat velká a malá písmena. |
Pokud má parametr typ pole, musí se každý prvek odpovídajícího pole argumentů shodovat s prvkem sady hodnot.
Představte si volání funkce Test
, které má následující blok param a který je volán, jak je znázorněno níže:
param ( [ValidateSet("Red", "Green", "Blue")]
[string] $Color,
[ValidateSet("up", "down", "left", "right", IgnoreCase =
$false)]
[string] $Direction
)
Test -col "RED" # case is ignored, is a member of the set
Test -col "white" # case is ignored, is not a member of the set
Test -dir "up" # case is not ignored, is a member of the set
Test -dir "Up" # case is not ignored, is not a member of the set
[ValidateSet(("Red", "Green", "Blue")]$color = "RED" # ok, case is ignored
$color = "Purple" # case is ignored, is not a member of the set
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro