Powershell get-childitem return files ही है


76

मैं गेट-चाइल्डिटेम को पुनरावर्ती रूप से उपयोग करना चाहता हूं, लेकिन केवल यह है कि रिटर्न फाइल नहीं निर्देशिका। मेरे पास सबसे अच्छा समाधान प्राकृतिक नहीं लगता है:

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

जवाबों:


76

इसे इस्तेमाल करे:

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

4
यदि आप कंटेनरों को बाहर कर रहे हैं तो आप * को छोड़ सकते हैं। *, सही?
MDMoore313

99

पॉवर्सशेल 3.0 में, यह सरल है,

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

यह और भी छोटा है,

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

2

PowerShell 3.0 में आप नए जोड़े गए -Attributesपैरामीटर
(तार्किक ऑपरेटरों के साथ) का उपयोग कर सकते हैं

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

golfed

dir -r -Attributes !D

-4

2.0 में पॉवरशेल सबसे अच्छा और सरल उपाय है, जिसमें सभी फाइलों को एक एक्सटेंशन के साथ शामिल करना है:

get-childitem -Recurse -include *.*

फ़ोल्डरों में एक्सटेंशन नहीं होता है, इसलिए उन्हें बाहर रखा जाता है, फ़ाइलों के नाम के विस्तार के बारे में सावधान रहें।


10
यह (निर्देशिकाओं के बारे में) सत्य नहीं है। विस्तार के साथ निर्देशिका करने के लिए आपको कुछ भी नहीं रोक सकता है
रोमियो निनोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.