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ým znakem 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čka (*
) 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:
*
- Shoda s nulovými nebo více znakya*
shodyaA
,ag
aApple
a*
neodpovídábanana
?
- U řetězců odpovídá jednomu znaku v dané pozici.?n
shodyan
,in
aon
?n
neodpovídáran
?
- U souborů a adresářů odpovídá nule nebo jednomu znaku v dané pozici.?.txt
shodya.txt
ab.txt
?.txt
neodpovídáab.txt
[ ]
- Shoda s rozsahem znaků[a-l]ook
shodybook
,cook
alook
[a-l]ook
neodpovídátook
[ ]
- Shoda s konkrétními znaky[bc]ook
shodybook
acook
[bc]ook
neodpovídáhook
`*
– Porovná libovolný znak jako literál (nikoli zástupný znak)12`*4
zápasy12*4
12`*4
neodpovídá1234
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
Poznámka:
Porovnávání se zástupnými znaky pro položky systému souborů funguje jinak než u řetězců. Další informace naleznete v Poznámky Oddíl DirectoryInfo.GetFiles(String, EnumerationOptions) metoda.
Můžou existovat případy, kdy chcete, aby se literálový znak shodovaly místo toho, aby byl považován za zástupný znak. V takových případech můžete pomocí znaku zpětného znaku (`
) utéct zástupný znak, aby byl porovnán pomocí hodnoty literálového znaku. '*hello`?*'
Například odpovídá řetězcům obsahujícím text "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, jejich použití nerozlišuje 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 zahrnuje Interactive.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
V následujícím příkladu If
příkaz obsahuje podmínku, která k vyhledání hodnot vlastností používá zástupné znaky. 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)"
}
}