especifica o ponto de regex '.' e '..' no PowerShell para encontrar arquivos / diretórios?

0

Eu acho o powershell de certa forma, posso fazer regexes de forma limitada. Sem dúvida, 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 tenho um diretório chamado 'qwe', isso irá mostrar

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

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

Mas 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 retorna a um diretório e não há como encontrar um arquivo / dir de 2 ou mais caracteres, com o regex ..

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

    
por barlop 30.08.2014 / 23:35

1 resposta

1

Dot tem um significado especial para nomes de arquivos, então você tem que usar Where-Object (ou seu formato curto) para esse tipo de filtragem:

Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }
    
por 30.08.2014 / 23:43