
Encuentro que PowerShell de alguna manera puede hacer expresiones regulares hasta cierto punto. Sin duda puede hacer más, pero no veo por qué no está aquí. Estoy intentando usar una expresión regular para especificar archivos/directorios.
Por ejemplo, cuando tengo un directorio llamado 'qwe' esto lo mostrará
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\[qwe][qwe][qwe]
d---- 24/08/2014 1:28 PM qwe
pero no puedo hacer
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\q.e
(para recoger el directorio qwe)
Y si lo hago
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\..
Luego regresa a un directorio y no hay manera de que pueda encontrar que coincida con un archivo/directorio de más de 2 caracteres o incluso 2 caracteres, con la expresión regular..
Sin embargo, admite este aspecto de las expresiones regulares [abcd] (una clase de carácter que coincide con una 'a', una 'b', una 'c' o una 'd') o [az], aunque es algo no regular como [abcd] solo coincide cuando el resultado es un carácter. Con una expresión regular adecuada, normalmente coincidiría con cualquier cosa con ese carácter, incluso cuando hay más de ese carácter allí.
Respuesta1
Dot tiene un significado especial para los nombres de archivos, por lo que debes usar Where-Object (o su forma corta) para este tipo de filtrado:
Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }