Powershellのget-childitemがファイルのみを返すようにする


76

get-childitemを再帰的に使用したいのですが、ディレクトリではなくファイルのみを返します。私が持っている最良の解決策は自然に思えません:

gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }

回答:


76

これを試して:

gci . *.* -rec | where { ! $_.PSIsContainer }

4
コンテナを除外する場合は、*を省略できます。*、 右?
MDMoore313

100

Powershell 3.0では、よりシンプルで、

gci -Directory #List only directories
gci -File #List only files

これはさらに短く、

gci -ad # alias for -Directory
gci -af # alias for -File


-4

powershell 2.0で私が思いついた最良かつ最も簡単な解決策は、拡張子を持つすべてのファイルを含めることです。

get-childitem -Recurse -include *.*

フォルダーには拡張子がないため、フォルダーは除外されます。filesという名前の拡張子がないことに注意してください。


10
これ(ディレクトリについて)は正しくありません。拡張子付きのディレクトリを持つことを止めるものは何もありません
ロミオニノフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.