get-childitemを取得して、複数のファイルタイプでフィルタリングするにはどうすればよいですか?


22

ディレクトリ内のすべてのXSLおよびXSLTファイルのリストを取得しようとしています。

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

しかし、次のエラー:

Get-ChildItem:パラメーター 'Filter'で必要なタイプ 'System.String'に 'System.Object []'を変換できません。指定されたメソッドはサポートされていません。

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

しかし、このエラーが発生しました:

Get-ChildItem:パラメーター 'Filter'が複数回指定されているため、パラメーターをバインドできません。複数の値を受け入れることができるパラメーターに複数の値を提供するには、配列構文を使用します。たとえば、「-parameter value1、value2、value3」。

単一のコマンドで両方のファイル拡張子をリストできますか?


回答:


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

()は実際には冗長であることに注意してください。ただし、明示的にすることを好みます。
EBGreen

現在のディレクトリにある.xslおよび.xsltファイルをリストする-recurseスイッチなしでは、このコマンドが機能しない理由はまったく意味がありません。
ゴードンベル

6

理由はわかりませんが、これはもっと速いようです:

dir .\ -recurse | where {$_.extension -in ".xsl",".xslt"}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.