especifique o ponto regex `.` e `..` no PowerShell para encontrar arquivos/diretórios?

especifique o ponto regex `.` e `..` no PowerShell para encontrar arquivos/diretórios?

Acho que o PowerShell, de certa forma, pode fazer expressões regulares até certo ponto. Não há dúvida de que pode fazer mais, mas não vejo por que não está aqui. Estou tentando usar um regex para especificar arquivos/diretórios.

Por exemplo, quando eu tiver um diretório chamado 'qwe' isso irá mostrá-lo

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\[qwe][qwe][qwe]

d----        24/08/2014   1:28 PM            qwe

Mas eu não posso fazer

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\q.e

(para pegar o diretório qwe)

E se eu fizer

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\..

Em seguida, ele volta para um diretório e não há como fazê-lo corresponder a um arquivo/diretório de mais de 2 caracteres ou mesmo 2 caracteres, com o regex..

No entanto, ele suporta este aspecto de expressões regulares [abcd] (uma classe de caracteres para corresponder a um 'a' ou 'b' ou 'c' ou 'd') ou [az] embora seja um pouco não regex como [abcd] corresponde apenas onde o resultado é um caractere. Com um regex adequado, normalmente corresponderia a qualquer coisa com esse caractere, inclusive quando há mais do que esse caractere.

Responder1

Ponto tem um significado especial para nomes de arquivos, então você deve usar Where-Object (ou sua forma abreviada) para esse tipo de filtragem:

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

informação relacionada