about_Parameters
Krátký popis
Popisuje, jak pracovat s parametry příkazů v PowerShellu.
Dlouhý popis
Většina příkazů PowerShellu, jako jsou rutiny, funkce a skripty, spoléhá na parametry, které uživatelům umožňují vybrat možnosti nebo zadat vstup. Parametry se řídí názvem příkazu a mají následující formulář:
-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>
Název parametru předchází pomlčka (-
), která signalizuje PowerShellu, že slovo za pomlčkou je název parametru. Název a hodnota parametru lze oddělit mezerou nebo dvojtečkam. Některé parametry nevyžadují nebo přijímají hodnotu parametru. Jiné parametry vyžadují hodnotu, ale nevyžadují název parametru v příkazu.
Typ parametrů a požadavky na tyto parametry se liší. K vyhledání informací o parametrech příkazu použijte rutinu Get-Help
. Pokud chcete například najít informace o parametrech Get-ChildItem
rutiny, zadejte:
Get-Help Get-ChildItem
Pokud chcete najít informace o parametrech skriptu, použijte úplnou cestu k souboru skriptu. Příklad:
Get-Help $HOME\Documents\Scripts\Get-Function.ps1
Rutina Get-Help
vrátí různé podrobnosti o příkazu, včetně popisu, syntaxe příkazu, informací o parametrech a příkladů, které ukazují, jak použít parametry v příkazu.
K vyhledání informací o konkrétním parametru můžete také použít parametr Parameter rutiny Get-Help
. Nebo můžete použít parametr Parametr s hodnotou zástupného znaku ( *
) k vyhledání informací o všech parametrech příkazu. Například následující příkaz získá informace o všech parametrech rutiny Get-Member
:
Get-Help Get-Member -Parameter *
Výchozí hodnoty parametrů
Volitelné parametry mají výchozí hodnotu, což je hodnota, která se používá nebo předpokládá, když parametr není zadaný v příkazu.
Výchozí hodnota parametru ComputerName mnoha rutin je například název místního počítače. V důsledku toho se v příkazu použije název místního počítače, pokud není zadán parametr ComputerName .
Pokud chcete najít výchozí hodnotu parametru, přečtěte si téma nápovědy pro rutinu. Popis parametru by měl obsahovat výchozí hodnotu.
Můžete také nastavit vlastní výchozí hodnotu pro libovolný parametr rutiny nebo pokročilé funkce. Informace o nastavení vlastních výchozích hodnot najdete v tématu about_Parameters_Default_Values.
Tabulka atributů parametru
Když použijete úplné parametry, parametr nebo online Get-Help
rutiny, Get-Help
zobrazí tabulku atributů parametrů s podrobnými informacemi o parametru.
Tyto informace obsahují podrobnosti, které potřebujete vědět o použití parametru.
Například téma nápovědy pro rutinu Get-ChildItem
obsahuje následující podrobnosti o parametru Path:
-Path <string[]>
Specifies a path of one or more locations. Wildcard characters are
permitted. The default location is the current directory (.).
Required? false
Position? 0
Default value Current directory
Accept pipeline input? true (ByValue, ByPropertyName)
Accept wildcard characters? true
Informace o parametru zahrnují syntaxi parametru, popis parametru a atributy parametrů. Následující části popisují atributy parametrů.
Povinný parametr
Toto nastavení určuje, jestli je parametr povinný, to znamená, jestli všechny příkazy, které používají tuto rutinu, musí obsahovat tento parametr. Pokud je hodnota True a parametr v příkazu chybí, PowerShell vás vyzve k zadání hodnoty parametru.
Pozice parametru
Position
Pokud je nastavení nastaveno na nezáporné celé číslo, název parametru není povinný. Tento typ parametru se označuje jako poziční parametr a číslo označuje pozici, ve které se parametr musí objevit ve vztahu k jiným pozičním parametrům. Pojmenovaný parametr může být uveden v libovolné pozici za názvem rutiny. Pokud zahrnete název parametru pro poziční parametr, může být parametr uveden v libovolné pozici za názvem rutiny.
Například rutina Get-ChildItem
obsahuje parametry Path a Exclude. Nastavení Position
pro cestu je 0, což znamená, že se jedná o poziční parametr. Nastavení Position
pro vyloučení je pojmenované.
To znamená, že cesta nevyžaduje název parametru, ale jeho hodnota parametru musí být první nebo pouze nepojmenovaná hodnota parametru v příkazu. Vzhledem k tomu, že parametr Exclude je pojmenovaný parametr, můžete ho umístit na libovolné místo v příkazu.
V důsledku Position
nastavení těchto dvou parametrů můžete použít některý z následujících příkazů:
Get-ChildItem -Path c:\techdocs -Exclude *.ppt
Get-ChildItem c:\techdocs -Exclude *.ppt
Get-ChildItem -Exclude *.ppt -Path c:\techdocs
Get-ChildItem -Exclude *.ppt c:\techdocs
Pokud byste měli zahrnout jiný poziční parametr bez zahrnutí názvu parametru, musí být tento parametr umístěn v pořadí určeném Position
nastavením.
Typ parametru
Toto nastavení určuje typ rozhraní Microsoft .NET Framework hodnoty parametru. Pokud je například typ Int32, hodnota parametru musí být celé číslo. Pokud je typ řetězec, hodnota parametru musí být řetězec znaku.
Pokud řetězec obsahuje mezery, musí být hodnota uzavřena v uvozovkách nebo mezery musí předcházet řídicí znak (`
).
Výchozí hodnota
Toto nastavení určuje hodnotu, kterou parametr předpokládá, pokud není zadána žádná jiná hodnota. Například výchozí hodnota parametru Path je často aktuálním adresářem. Požadované parametry nikdy nemají výchozí hodnotu. U mnoha volitelných parametrů neexistuje výchozí nastavení, protože parametr nemá žádný vliv, pokud se nepoužívá.
Přijímá více hodnot.
Toto nastavení určuje, jestli parametr přijímá více hodnot parametrů. Když parametr přijímá více hodnot, můžete jako hodnotu parametru v příkazu zadat seznam oddělený čárkami, nebo uložit čárkami oddělený seznam (pole) do proměnné a pak proměnnou zadat jako hodnotu parametru.
Například parametr Name rutiny Get-Service
přijímá více hodnot. Oba příkazy jsou platné:
Get-Service -Name winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -Name $s
Přijímá vstup kanálu.
Toto nastavení určuje, jestli můžete k odeslání hodnoty parametru použít operátor kanálu (|
).
Value Description
----- -----------
False Indicates that you cannot pipe a value to the
parameter.
True (by Value) Indicates that you can pipe any value to the
parameter, just so the value has the .NET
Framework type specified for the parameter or the
value can be converted to the specified .NET
Framework type.
Pokud je parametr True (by Value), PowerShell se pokusí přidružit k ho parametru před tím, než se pokusí interpretovat příkaz jinými metodami.
True (by Property Name) Indicates that you can pipe a value to the
parameter, but the .NET Framework type of the
parameter must include a property with the same
name as the parameter.
Hodnotu můžete například převést na parametr Name pouze v případě, že hodnota má vlastnost s názvem Name.
Poznámka:
Zadaný parametr, který přijímá vstup kanálu (by Value
) nebo (by PropertyName
) umožňuje použití bloků skriptu vazby zpoždění u parametru.
Blok skriptu s vazbou zpoždění se spustí automaticky během parametruBinding. Výsledek je vázán na parametr. Vazby zpoždění nefungují pro parametry definované jako typ ScriptBlock
nebo System.Object
, blok skriptu se předává bez vyvolání.
Tady si můžete přečíst o blocích skriptu se zpožděním vazby about_Script_Blocks.md.
Přijímá zástupné znaky.
Toto nastavení určuje, jestli hodnota parametru může obsahovat zástupné znaky, aby se hodnota parametru shodovala s více než jednou existující položkou v cílovém kontejneru.
Běžné parametry
Běžné parametry jsou parametry, které můžete použít s libovolnou rutinou. Další informace o běžných parametrech najdete v tématu about_CommonParameters.