about_Wildcards
Краткое описание
Описывает, как использовать дикие карта символы в PowerShell.
Подробное описание
Дикие карта символы представляют один или несколько символов. Их можно использовать для создания шаблонов слов в командах. Выражения Wild карта используются с оператором -like
или с любым параметром, принимаюющим дикие карта.
Например, чтобы сопоставить все файлы в каталоге C:\Techdocs
с расширением .ppt
имени файла, введите:
Get-ChildItem C:\Techdocs\*.ppt
В этом случае символ звездочки (*
) wild карта представляет все символы, которые отображаются перед расширением .ppt
имени файла.
Дикие карта выражения проще регулярных выражений. Дополнительные сведения см. в about_Regular_Expressions.
PowerShell поддерживает следующие дикие карта символы:
*
— соответствие нулю или нескольким символамa*
совпаденияaA
,ag
иApple
a*
не соответствуетbanana
?
— Для строк следует соответствовать одному символу в этой позиции.?n
совпаденияan
,in
иon
?n
не соответствуетran
?
— для файлов и каталогов, совпадение с нулевым или одним символом в этой позиции?.txt
совпаденияa.txt
иb.txt
?.txt
не соответствуетab.txt
[ ]
— сопоставление диапазона символов[a-l]ook
совпаденияbook
,cook
иlook
[a-l]ook
не соответствуетtook
[ ]
— сопоставление определенных символов[bc]ook
совпаденияbook
иcook
[bc]ook
не соответствуетhook
`*
— сопоставляет любой символ как литерал (не дикий карта символ)12`*4
, соответствующий12*4
12`*4
не соответствует1234
В один и тот же шаблон слова можно включить несколько диких карта символов. Например, чтобы найти текстовые файлы с именами, начинающимися с буквы через l, введите:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Примечание.
Wild карта сопоставление элементов файловой системы отличается от строк. Дополнительные сведения см. в разделе "Примечания" метода DirectoryInfo.GetFiles(String, ListionOptions).
Могут возникнуть случаи, когда вы хотите соответствовать литералу, а не рассматривать его как дикий карта символ. В этих случаях можно использовать символ обратного ввода (`
) для экранирования дикого карта символа, чтобы он сравнивался с использованием значения литерального символа. Например, '*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)"
}
}
См. также
PowerShell