Я нахожу 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 ответ1

1

Dot имеет особое значение для имен файлов, поэтому вы должны использовать Where-Object (или его краткую форму) для такого типа фильтрации:

Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .