
Я нахожу, что powershell в некоторых отношениях может делать регулярные выражения в ограниченной степени. Несомненно, он может делать больше, но я не понимаю, почему его нет здесь. Я пытаюсь использовать регулярные выражения для указания файлов/каталогов.
Например, если у меня есть каталог с именем «qwe», то он будет показан
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\[qwe][qwe][qwe]
d---- 24/08/2014 1:28 PM qwe
Но я не могу этого сделать.
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\q.e
(чтобы выбрать каталог qwe)
И если я это сделаю
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\..
Затем он возвращается в каталог, и я не могу найти способ, чтобы он соответствовал файлу/каталогу из 2+ символов или даже 2 символов с помощью регулярного выражения..
Однако он поддерживает этот аспект регулярных выражений [abcd] (класс символов для соответствия 'a' или 'b' или 'c' или 'd') или [az], хотя это несколько нерегулярно, как [abcd] соответствует только там, где результатом является один символ. С правильным регулярным выражением он обычно будет соответствовать всему, что содержит этот символ, включая случаи, когда там есть больше, чем этот символ.
решение1
Точка имеет особое значение для имен файлов, поэтому для такого типа фильтрации необходимо использовать Where-Object (или его короткую форму):
Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }