Podpora zástupných znaků v parametrech rutin

Často budete muset navrhnout rutinu tak, aby se spouštěl pro skupinu prostředků, a ne pro jeden prostředek. Rutina může například potřebovat vyhledat všechny soubory v datovém obchodě se stejným názvem nebo příponou. Při návrhu rutiny, která se bude spouštět pro skupinu prostředků, je nutné zajistit podporu pro zástupné znaky.

Poznámka

Použití zástupných znaků se někdy označuje jako zástupný znak.

Windows PowerShell Rutiny, které používají zástupné znaky

Mnoho Windows PowerShell rutin podporuje zástupné znaky pro jejich hodnoty parametrů. Například téměř každá rutina, která má parametr nebo , podporuje pro tyto parametry Name Path zástupné znaky. (Přestože většina rutin, které mají parametr, má také parametr, Path LiteralPath který nepodporuje zástupné znaky.) Následující příkaz ukazuje, jak se zástupný znak používá k vrácení všech rutin v aktuální relaci, jejichž název obsahuje příkaz Get.

Get-Command get-*

Podporované zástupné znaky

Windows PowerShell podporuje následující zástupné znaky.

Zástupný znak Popis Příklad Shody Neodpovídá
* Odpovídá nule nebo více znakům počínaje zadanou pozicí. a* A, ag, Apple
? Odpovídá libovolnému znaku na zadané pozici. ?n An, in, on Běžel
[ ] Odpovídá rozsahu znaků. [a-l]ook book, cook, look nook, took
[ ] Odpovídá zadaným znakům. [bn]ook book, nook cook, look

Při návrhu rutin, které podporují zástupné znaky, povolte kombinaci zástupných znaků. Například následující příkaz pomocí rutiny načte všechny soubory .txt, které jsou ve složce c:\Techdocs a začínají písmeny Get-ChildItem "a" až "l".

Get-ChildItem c:\techdocs\[a-l]\*.txt

Předchozí příkaz používá zástupný znak rozsahu k určení, že název souboru by měl začínat znaky "a" až "l" a používá zástupný znak jako zástupný znak pro všechny znaky mezi prvním písmenem názvu souboru [a-l] * a .txt příponou.

Následující příklad používá vzor zástupných znaků pro rozsah, který vylučuje písmeno "d", ale obsahuje všechna ostatní písmena od "a" do "f".

Get-ChildItem c:\techdocs\[a-cef]\*.txt

Zpracování literálových znaků ve vzorech se zástupnými znaky

Pokud zadáte zástupný znak obsahuje literálové znaky, které by neměly být interpretovány jako zástupné znaky, použijte jako řídicí znak znak backtick ( ` ). Když v rozhraní API PowerShellu zadáte literálové znaky, použijte jeden příkaz backtick. Při zadávání literálových znaků na příkazovém řádku PowerShellu použijte dva backticks.

Například následující vzor obsahuje dvě hranaté závorky, které je třeba vzít doslovně.

Při použití v rozhraní API PowerShellu použijte:

  • "John Smith ` [*']"

Při použití z příkazového řádku PowerShellu:

  • "John Smith ` ` [* ` ']"

Tento vzor odpovídá "John Smith [Marketing]" nebo "John Smith [Development]". Například:

PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True

PS> "John Smith [Development]" -like "John Smith ``[*``]"
True

Výstup rutiny a zástupné znaky

Pokud parametry rutiny podporují zástupné znaky, operace obvykle vygeneruje výstup pole. V některých případech nemá smysl podporovat výstup pole, protože uživatel může použít pouze jednu položku. Například rutina Set-Location nepodporuje výstup pole, protože uživatel nastaví pouze jedno umístění. V tomto případě rutina stále podporuje zástupné znaky, ale vynutí překlad do jednoho umístění.

Viz také

Vytvoření rutiny Windows PowerShellu

WildcardPattern – třída