O parametrech
Krátký popis
Popisuje, jak pracovat s parametry příkazu 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í tvar:
-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>
Názvu parametru předchází pomlčka (-), která do PowerShellu signalizuje, že slovo za spojovníkem je název parametru. Název parametru a hodnotu lze oddělit mezerou nebo znakem dvojtečky. 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ší. Pokud chcete najít informace o parametrech příkazu, použijte rutinu Get-Help
. Pokud chcete například najít informace o parametrech rutiny Get-ChildItem
, 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 parametry použít v příkazu.
K vyhledání informací o konkrétním parametru můžete použít také parametr Get-Help
Parameter rutiny. Nebo můžete použít parametr Parametr se zástupným znakem ( *
) 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žije nebo předpokládá, když parametr není v příkazu zadán.
Například výchozí hodnota parametru ComputerName mnoha rutin je 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 k rutině. 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ů parametrů
Když použijete parametry Full, Parameter nebo Online rutiny Get-Help
, Get-Help
zobrazí tabulku atributů parametrů s podrobnými informacemi o parametru.
Tyto informace zahrnují podrobnosti, které potřebujete vědět, abyste mohli parametr použít.
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 parametru. Následující části popisují atributy parametrů.
Povinný parametr
Toto nastavení označuje, jestli je parametr povinný, to znamená, jestli všechny příkazy, které používají tuto rutinu, musí tento parametr obsahovat. Pokud je hodnota True a parametr v příkazu chybí, PowerShell vás vyzve k zadání hodnoty parametru.
Umístění parametru
Position
Pokud je nastavení nastavené na kladné celé číslo, název parametru se nevyžaduje. Tento typ parametru se označuje jako poziční parametr a číslo označuje pozici, ve které se musí parametr objevit ve vztahu k jiným pozičním parametrům. Pojmenovaný parametr může být uveden na libovolné pozici za názvem rutiny. Pokud zahrnete název parametru pro poziční parametr, může být parametr uveden na libovolné pozici za názvem rutiny.
Rutina Get-ChildItem
má například parametry Path a Exclude. Nastavení Position
path je 0, což znamená, že se jedná o poziční parametr. Nastavení Position
pro Vyloučení má název.
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 v příkazu umístit na libovolnou pozici.
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 znaků. Pokud řetězec obsahuje mezery, musí být hodnota uzavřena v uvozovkách nebo mezerám musí předcházet řídicí znak ( ' ).
Výchozí hodnota
Toto nastavení určuje hodnotu, kterou parametr bude předpokládat, pokud není zadána žádná jiná hodnota. Například výchozí hodnotou parametru Path je často aktuální adresář. Požadované parametry nikdy nemají výchozí hodnotu. Pro mnoho volitelných parametrů neexistuje výchozí hodnota, 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ů. Pokud parametr přijímá více hodnot, můžete jako hodnotu parametru v příkazu zadat seznam oddělený čárkami nebo uložit seznam oddělený čárkami (pole) do proměnné a pak zadat proměnnou jako hodnotu parametru.
Například parametr ServiceName rutiny Get-Service
přijímá více hodnot. Následující příkazy jsou platné:
Get-Service -servicename winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -servicename $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 má parametr hodnotu True (by Value), PowerShell se pokusí přidružit všechny hodnoty zasílané do kanálu s tímto parametrem předtí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 nasměrovat do parametru Name pouze v případě, že 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ů skriptů se zpožděním vazby v parametru.
Blok skriptu se zpožděním vazby se spouští automaticky během parametru ParameterBinding. Výsledek je vázán na parametr . Zpoždění vazby nefunguje u parametrů definovaných jako typ ScriptBlock
nebo System.Object
, blok skriptu se předává bez vyvolání.
Informace o blocích skriptu delay-bind najdete tady about_Script_Blocks.md.
Přijímá zástupné znaky.
Toto nastavení určuje, jestli hodnota parametru může obsahovat zástupné znaky, aby hodnota parametru byla spárována 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.