मेरे पास topfolder
नामक एक प्रोजेक्ट फ़ोल्डर है और मैं सभी सबफ़ोल्डर में सभी फ़ाइलों को ढूंढना चाहता हूं जो एक निश्चित पैटर्न से मेल खाते हैं, उदा। जब फ़ोल्डर में foo
इसके नाम पर कहीं भी है, तो मैं इसके अंदर सभी फाइलों को सूचीबद्ध करना चाहता हूं।Get-ChildItem का उपयोग करके कुछ नामों वाली निर्देशिकाओं में फ़ाइलों को कैसे ढूंढें?
मैं की तरह कुछ करने की कोशिश की:
gci .\topfolder -rec -filter *foo*
लेकिन यह दो समस्याएं हैं:
- केवल फ़ाइलें वास्तव में युक्त
foo
सूचीबद्ध किया जाएगा (मैं foo की तरह फ़ोल्डर में कोई भी फ़ाइल चाहते हैं)। - इस फ़िल्टर से मेल खाने वाली निर्देशिका परिणाम सेट का हिस्सा भी होगी।
gci .\topfolder\*foo* -include *.*
लेकिन यह बिल्कुल काम नहीं करता है - जाहिरा तौर पर मैच केवल एक रास्ता के एक एकल खंड वाइल्डकार्ड ताकि पैटर्न
topfolder\foobar
नहीं लेकिनtopfolder\subfolder\foobar
मिलान हो जाएगा:
तब मैं इस कोशिश की।
gci .\topfolder -rec -include *foo* | where { $_.psiscontainer } | gci
यह काम करता है, लेकिन यह gci
दो बार फोन करने के लिए एक बेकार की तरह लगता है और मुझे आशा है कि मैं सिर्फ नहीं था ':
एक ही रास्ता मैं पाया है अब तक Get-ChildItem दो बार उपयोग करने के लिए, इस तरह था -Path
, -Filter
या -Include
जैसे कुछ के लिए सही वाइल्डकार्ड अभिव्यक्ति नहीं ढूंढें।
ऐसा करने के लिए सबसे अच्छा तरीका क्या है?
यह मेरे पिछले उदाहरण से अलग है? क्या यह मेरे प्रयास से भी धीमा नहीं होगा? – Borek
क्षमा करें, मैं अंधा रहा होगा;) –
बस एक अद्यतन जवाब –