Como obtenho o get-childitem para filtrar em vários tipos de arquivo?


22

Estou tentando obter uma lista de todos os arquivos XSL e XSLT em um diretório.

dir -recurse -filter *.xsl,*.xslt -name

Mas o seguinte erro:

Get-ChildItem: Não é possível converter 'System.Object []' para o tipo 'System.String' exigido pelo parâmetro 'Filter'. O método especificado não é suportado.

dir -recurse -filter *.xsl -filter *.xslt -name

Mas recebi este erro:

Get-ChildItem: Não é possível vincular o parâmetro porque o parâmetro 'Filter' foi especificado mais de uma vez. Para fornecer vários valores a parâmetros que podem aceitar vários valores, use a sintaxe da matriz. Por exemplo, "-parâmetro valor1, valor2, valor3".

Posso listar as duas extensões de arquivo com um único comando?


Respostas:


33
dir .\* -include ('*.xsl', '*.xslt') -recurse

Observe que o () é realmente redundante, mas eu prefiro ser explícito.
EBGreen

Não faz absolutamente sentido que esse comando não funcione sem a opção -recurse, para listar os arquivos .xsl e .xslt no diretório atual.
Gordon Bell

6

Não sei por que, mas este parece ser muito mais rápido:

dir .\ -recurse | where {$_.extension -in ".xsl",".xslt"}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.