Подстановочные символы в PowerShell


Подстановочные знаки представляют один или несколько символов. Вы можете использовать их для создания шаблонов слов в командах. Например, чтобы получить список всех файлой в каталоге C:\Techdocs с расширением в имени файла .ppt, введите:

Get-ChildItem C:\Techdocs\*.ppt

В этом случае подстановочный знак звёздочка (*) представляет любые символы, которые появляются перед расширением имени файла .ppt.

PowerShell поддерживает следующие подстановочные знаки:

Подстановочный знак Описание Пример Соответствие Не совпадает с
* Соответствует нулю или более символов a* aA, ag, Apple banana
? Соответствует одному символу в этой позиции ?n an, in, on ran
[ ] Соответствует диапазону символов [a-l]ook book, cook, look took
[ ] Соответствует определённым символам [bc]ook book, cook hook

В один и тот же шаблон слова можно включить несколько подстановочных знаков. Например, чтобы найти текстовые файлы с именами, начинающимися с букв от A до L, введите:


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

Многие командлеты принимают подстановочные знаки в значениях параметров. Раздел справки для каждого командлета описывает, какие параметры принимают подстановочные знаки. Для параметров, которые принимают подстановочные знаки, их использование нечувствительно к регистру.

Вы можете использовать подстановочные знаки в командах и блоках скриптов, например, для создания образца слова, представляющего значения свойств. Например, следующая команда выводит службы, в которых значение свойства SERVICETYPE включает INTERACTIVE.

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

В следующем примере оператор If включает условие, в котором используются подстановочные знаки для поиска значений свойств. Если DESCRIPTION точки восстановления включает POWERSHELL, команда добавляет значение свойства CREATIONTIME точки восстановления в файл журнала.

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

Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *