О подстановочных знаках
КРАТКОЕ ОПИСАНИЕ
Описывает использование подстановочных знаков в PowerShell.
ПОДРОБНОЕ ОПИСАНИЕ
Подстановочные знаки представляют один или несколько символов. Их можно использовать для создания шаблонов слов в командах. Например, чтобы получить все файлы в каталоге C:\Techdocs
с расширением .ppt
имени файла, введите:
Get-ChildItem C:\Techdocs\*.ppt
В этом случае подстановочный знак звездочки (*
) представляет все символы, отображаемые перед расширением .ppt
имени файла.
PowerShell поддерживает следующие подстановочные знаки:
Подстановочный знак | Описание | Пример | Соответствует | Нет совпадений |
---|---|---|---|---|
* | Соответствие нулю или нескольким символам | a* | aA, ag, Apple | Банан |
? | Совпадение одного символа в этой позиции | ?n | an, in, on | Побежал |
[ ] | Сопоставление диапазона символов | [a-l]ook | книга, повар, смотреть | Взял |
[ ] | Сопоставление определенных символов | [bc]ook | книга, повар | Крюк |
В один шаблон слов можно включить несколько подстановочных знаков. Например, чтобы найти текстовые файлы с именами, начинающимися с букв отl, введите:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Многие командлеты принимают подстановочные знаки в значениях параметров. Раздел справки для каждого командлета описывает, какие параметры принимают подстановочные знаки. Для параметров, которые принимают подстановочные знаки, их использование не учитывает регистр.
Подстановочные знаки можно использовать в командах и блоках скриптов, например для создания шаблона слова, представляющего значения свойств. Например, следующая команда получает службы, в которых значение свойства 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)"
}
}