about_Wildcards

Krátký popis

Popisuje, jak používat zástupné znaky v PowerShellu.

Dlouhý popis

Zástupné znaky představují jeden nebo více znaků. Můžete je použít k vytváření vzorů slov v příkazech. Výrazy se zástupnými hodnotami se používají s operátorem -like nebo s libovolným parametrem, který přijímá zástupné cardy.

Pokud chcete například shodovat všechny soubory v C:\Techdocs adresáři s příponou .ppt názvu souboru, zadejte:

Get-ChildItem C:\Techdocs\*.ppt

V tomto případě zástupný znak hvězdičky (*) představuje všechny znaky, které se zobrazí před příponou .ppt názvu souboru.

Výrazy se zástupnými znaky jsou jednodušší než regulární výrazy. Další informace najdete v tématu about_Regular_Expressions.

PowerShell podporuje následující zástupné znaky:

Zástupný znak Popis Příklad Shoda Žádná shoda
* Shoda s znaky s nulou nebo více znaky a* aA, ag, Apple banán
? Porovná jeden znak v dané pozici. ?n a, in, on běželi
[ ] Shoda s rozsahem znaků [a-l\]ook kniha, kuchař, podívejte se bral
[ ] Shoda s konkrétními znaky [bc]ook kniha, kuchař hák
`* Shoda libovolného znaku jako literálu (ne zástupný znak) 12`*4 12*4 1 234

Do stejného vzoru slova můžete zahrnout více zástupných znaků. Pokud chcete například najít textové soubory s názvy, které začínají písmeny a ažl, zadejte:

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

V případech, kdy chcete, aby se literálový znak shodovaly, ne jako se zástupným znakem, můžou nacházet jako zástupné znaky. V takových případech můžete znak zpětného znaku (`) použít k řídicímu znaku zástupné znaky, aby byl porovnán s hodnotou literálového znaku. Například '*hello`?*' odpovídá řetězcům obsahujícím "hello?".

Mnoho rutin přijímá zástupné znaky v hodnotách parametrů. Téma nápovědy pro každou rutinu popisuje, které parametry přijímají zástupné znaky. U parametrů, které přijímají zástupné znaky, je jejich použití nerozlišující malá a velká písmena.

Zástupné znaky můžete použít v příkazech a blocích skriptu, například vytvořit vzor slova, který představuje hodnoty vlastností. Například následující příkaz získá služby, ve kterých hodnota vlastnosti ServiceType obsahuje Interactive.

Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}

V následujícím příkladu If příkaz obsahuje podmínku, která používá zástupné znaky k vyhledání hodnot vlastností. Pokud popis bodu obnovení obsahuje PowerShell, příkaz přidá hodnotu vlastnosti CreationTime bodu obnovení do souboru protokolu.

$p = Get-ComputerRestorePoint
foreach ($point in $p) {
  if ($point.description -like "*PowerShell*") {
    Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
  }
}

Viz také