Powershell get-childitem dönüş dosyaları sadece var


76

Özyinelemeli get-childitem kullanmak istiyorum, ancak yalnızca dizinleri değil dosyaları döndürmesini sağlarım. Sahip olduğum en iyi çözüm doğal görünmüyor:

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

Yanıtlar:


76

Bunu dene:

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

4
kapları hariç tutuyorsanız * bırakabilirsiniz. *, sağ?
MDMoore313

99

Powershell 3.0'da daha basittir.

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

Bu daha kısa,

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

2

PowerShell 3.0'da yeni eklenen -Attributesparametreyi de kullanabilirsiniz
(mantıksal operatörlerle birlikte)

Get-ChildItem -Recurse -Attributes !Directory+!System

golfed

dir -r -Attributes !D

-4

Powershell 2.0'da bulabildiğim en iyi ve en basit çözüm, uzantıya sahip tüm dosyaları eklemektir:

get-childitem -Recurse -include *.*

klasörler bir uzantıya sahip değildir, dolayısıyla dışlanırlar, dosya adında uzantılara dikkat edin.


10
Bu (dizinlerle ilgili) doğru değil. Hiçbir şey, uzantı ile dizine sahip olmanızı durduramaz
Romeo Ninov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.