2008-12-03 11 views
17

मैं एक विंडोज बैच फ़ाइल लिखने की कोशिश कर रहा हूं जो उपनिर्देशिका से फ़ाइलों को हटा सकता है। मैं निर्देशिका संरचना को हार्ड कोड नहीं करना चाहूंगा, इसलिए मैं इस प्रक्रिया का उपयोग अन्य परियोजनाओं के साथ कर सकता हूं।विंडोज बैच फ़ाइल से वाई सबफ़ोल्डर से एक्स प्रकार की एन फ़ाइलों को कैसे हटाएं?

  • मैं एक्स प्रकार की फ़ाइलों को हटाने की आवश्यकता,
  • मैं मूल फ़ोल्डर C:\MyProject,
  • वाई सबफ़ोल्डर C:\MyProject\?,
  • को हटाने के लिए एन फ़ाइलें हैं कर रहे हैं की है।

क्या कोई त्वरित del (प्रकार का) फ़ंक्शन है जो मुझे बस याद आ रहा है?

उत्तर

33

वास्तव में आप मानक डेल आदेश का उपयोग कर सकते हैं:

c: 
cd MyProject 
del /S *.type 

कहाँ प्रकार विस्तार आप हटाना चाहते हैं और/एस पैरामीटर MyProject के सभी उप-फ़ोल्डर में जाँच करेगा है।

+0

आप बहुत ही अच्छे हैं। – Jeremiah

+0

मजेदार बात, प्रोग्रामिंग के वर्षों के बाद मैंने सोचा कि यह "अगर" और सामान के साथ लूप का कुछ हिस्सा होगा ... –

+1

कृपया ध्यान दें कि यह किसी भी फाइल को अपने एक्सटेंशन की शुरुआत में मिलान करने वाली उप-स्ट्रिंग के साथ भी हटा देगा। उदाहरण के लिए 'del/S * .doc'' .doc' और '.docx' फ़ाइल-प्रकार दोनों को हटा देता है। –

1

डेल आदेश/एस रिकर्सिवली नष्ट करने के लिए झंडा नहीं था, तो मैं (यदि आप Windows के लिए यूनिक्स उपकरणों की आवश्यकता होगी) इस तरह कुछ करने के लिए AWK का उपयोग करेंगे:

dir MyProject\*.* /ad /s /b | gawk "{print \"del \\\"\" $0 \"\\*.type\\\"\";}" | cmd 

मेरे 2 सेंट, यदि आपको कभी भी कुछ समान करने की आवश्यकता होती है (सभी सबफ़ोल्डर में एक्स प्रकार की सभी फ़ाइलों में एक प्रोग्राम लागू करना) जिसमें एक रिकर्सिव फ्लैग की कमी होती है।

संबंधित मुद्दे