Sdílet prostřednictvím


Podpora zástupných znaků v parametrech rutin

Často budete muset navrhnout rutinu tak, aby běžela proti skupině prostředků, a ne pro jeden prostředek. Například rutina může potřebovat vyhledat všechny soubory v úložišti dat se stejným názvem nebo příponou. Při návrhu rutiny, která se spustí ve skupině prostředků, musíte poskytnout podporu zástupných znaků.

Poznámka:

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

Rutiny Windows PowerShellu, které používají zástupné cardy

Mnoho rutin Prostředí Windows PowerShell podporuje zástupné znaky pro hodnoty parametrů. Například téměř každá rutina s parametrem Name nebo Path podporuje zástupné znaky pro tyto parametry. (I když většina rutin, které mají parametr Path, má také parametr 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 (or Zápasy if the context is sports-related) Neodpovídá
* Odpovídá nule nebo více znaků 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 kniha, kuchař, vzhled nook, vzal
[ ] Odpovídá zadaným znakům. [bn]ook Kniha, nook kuchaři, podívejte se

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

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

Předchozí příkaz používá zástupný znak rozsahu [a-l] 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 příponou .txt.

Následující příklad používá vzor se zástupnými znaky rozsahu, který vyloučí písmeno "d", ale obsahuje všechna ostatní písmena z "a" až "f".

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

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

Pokud zadaný vzor se zástupnými znaky obsahuje literální znaky, které by neměly být interpretovány jako zástupné znaky, použijte jako řídicí znak zpětný znak (`). Když zadáte literální znaky v rozhraní API PowerShellu, použijte jeden zpětný popisek. Při zadávání literálových znaků na příkazovém řádku PowerShellu použijte dvě zpětné znaky.

Následující vzor například obsahuje dvě hranaté závorky, které je potřeba vzít doslova.

Pokud se používá 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 rutin podporují zástupné znaky, operace obvykle generuje výstup pole. Někdy není vhodné podporovat výstup pole, protože uživatel může použít jenom 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í rozlišení do jednoho umístění.

Viz také

psaní rutiny Prostředí Windows PowerShell

třídy WildcardPattern