about_Wildcards
Краткое описание
Описание использования подстановочных знаков в PowerShell.
Подробное описание
Подстановочные знаки представляют один или несколько символов. Их можно использовать для создания шаблонов слов в командах. Выражения с подстановочными знаками используются с оператором -like
или с любым параметром, который принимает подстановочные знаки.
Например, чтобы сопоставить все файлы в каталоге C:\Techdocs
с расширением .ppt
имени файла, введите:
Get-ChildItem C:\Techdocs\*.ppt
В этом случае подстановочный знак звездочки (*
) представляет все символы, которые появляются перед расширением .ppt
имени файла.
Выражения с подстановочными знаками проще регулярных выражений. Дополнительные сведения см. в разделе about_Regular_Expressions.
PowerShell поддерживает следующие подстановочные знаки:
*
— совпадение с нулем или более символамиa*
соответствуетaA
,ag
иApple
a*
не соответствуетbanana
?
— совпадение с одним символом в этой позиции?n
соответствуетan
,in
иon
?n
не соответствуетran
[ ]
— соответствие диапазону символов[a-l]ook
соответствуетbook
,cook
иlook
[a-l]ook
не соответствуетtook
[ ]
— Сопоставление определенных символов[bc]ook
соответствуетbook
иcook
[bc]ook
не соответствуетhook
`*
— сопоставляет любой символ как литерал (не подстановочный знак)12`*4
, соответствующий12*4
12`*4
не соответствует1234
В один и тот же шаблон слова можно включить несколько подстановочных знаков. Например, чтобы найти текстовые файлы с именами, начинающимися с букв a по l, введите:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Бывают случаи, когда требуется сопоставить литеральный символ, а не рассматривать его как подстановочный знак. В таких случаях можно использовать символ обратного символа (`
), чтобы экранировать подстановочный знак, чтобы сравнить его с помощью литерального значения символа. Например, соответствует строкам, '*hello`?*'
содержащим "hello?".
Многие командлеты принимают подстановочные знаки в значениях параметров. В разделе справки для каждого командлета описывается, какие параметры принимают подстановочные знаки. Для параметров, которые принимают подстановочные знаки, их использование не учитывает регистр.
Вы можете использовать подстановочные знаки в командах и блоках скриптов, например для создания шаблона слова, представляющего значения свойств. Например, следующая команда возвращает службы, в которых значение свойства ServiceType включает Interactive.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
В следующем примере оператор включает условие, If
которое использует подстановочные знаки для поиска значений свойств. Если описание точки восстановления содержит PowerShell, команда добавляет значение свойства CreationTime точки восстановления в файл журнала.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}