एक निश्चित फ़ाइल एक्सटेंशन के साथ सभी फ़ाइलों को हटाने के लिए Powershell


22

मैं एक निर्देशिका स्कैन करना चाहता हूं (कोई उप नहीं हैं) और .avi मैंने इस सिंटैक्स की कोशिश की एक्सटेंशन वाली किसी भी फ़ाइल को हटा दिया है, लेकिन कोई त्रुटि नहीं फेंकी गई है, और कोई भी फ़ाइल हटा नहीं है। यह कोड है जो मैंने कोशिश की

get-childitem 'C:\Users\ramrod\Desktop\Firefly' -include *.avi | foreach ($_) {remove-item $_.fullname}

.aviफ़ोल्डर से सभी फ़ाइलों को हटाने के लिए क्या बदल जाना चाहिए ?


3
क्या आप का उपयोग करने से रोकता है rm *.avi? (हां, यह मान्य rmdel
पॉवरशेल

2
तकनीकी रूप से, rmऔर delदोनों Remove-Itemcmdlet के उपनाम हैं ।
रूट

जवाबों:


16

इसका उपयोग करें del *.<extension>या इसमें से एक उपनाम है (जैसे rm, यदि आप अधिक मार खाने के आदी हैं)।

इसलिए वर्तमान कार्यशील निर्देशिका में del *.aviसमाप्त होने वाली सभी फ़ाइलों को हटाना होगा .avi

del <directory>\*.<extension>अन्य निर्देशिकाओं में फ़ाइलों को हटाने के लिए उपयोग करें ।


15
पुनरावर्ती रूप से ऐसा करने के लिएls *.avi -Recurse | foreach {rm $_}
कोलोब कैनियन

11

निर्देशिका में Powershell उदाहरण खोलने की पसंदीदा विधि मानकर, एक सामान्य संस्करण इस प्रकार होगा:

Get-ChildItem *.avi | foreach { Remove-Item -Path $_.FullName }

निर्देशिका-विशिष्ट संस्करण के लिए:

Get-ChildItem -Path 'C:\Users\ramrod\Desktop\Firefly' *.avi | foreach { Remove-Item -Path $_.FullName }

सभी निहित फ़ोल्डरों को प्रभावित -Recurseकरने के Get-ChildItemलिए इसमें जोड़ें ।

उदाहरण:

Get-ChildItem *.avi -Recurse | foreach { Remove-Item -Path $_.FullName }

3

Remove-ItemCommandlet आप सभी की जरूरत होनी चाहिए। बस रूट फ़ोल्डर को पास करें जहां एवी फाइलें मौजूद हैं और recurseएक फिल्टर के साथ ध्वज को पास करें :

Remove-Item 'C:\Users\ramrod\Desktop\Firefly\*' -recurse -Include *.avi

यह फ़ाइलों को खोजने Get-ChildItemऔर Remove-Itemप्रत्येक के लिए इनवॉइस करने की तुलना में तेज़ी से निष्पादित करना चाहिए ।

-WhatIfस्विच को जोड़ने से आपको प्रत्येक फ़ाइल को हटाने से पहले संकेत मिलेगा, जो पावरशेल के साथ कम आरामदायक लोगों के लिए सुरक्षित है।


1
यकीन नहीं होता कि इस जवाब को वोट क्यों मिला। -WhatIfस्विच अनावश्यक है। मैंने इस उत्तर पर एक संपादन प्रस्तुत किया। +1 Remove-Itemकमांडलेट आपको सभी की आवश्यकता है, और वर्तमान में स्वीकृत उत्तर की तुलना में तेजी से चलता है।
ग्रेग बरगार्ड

यह -whatifसत्यापित करने के लिए उपयोग करने के लिए एक अच्छा विचार है कि आप केवल उन फ़ाइलों को हटा देंगे जिन्हें आप हटाना चाहते हैं। और विशेष रूप से अज्ञात तकनीकी विशेषज्ञता वालों को एक विलोपन आदेश की पेशकश करते समय। प्रशिक्षण पहियों पर रखने के लिए सबसे अच्छा है।
कीथ मिलर

0

मान लीजिए कि वर्तमान निर्देशिका में कई पाठ फाइलें हैं।
dir * -include *.txt& dir *.txtउम्मीद के dir -include *.txtमुताबिक काम करें लेकिन कुछ नहीं देता। स्टैक ओवरफ्लो पर कारण अच्छी तरह से समझाया गया है ।

सही कमांड:
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}


0

यह अंत में मेरे लिए किया - ऊपर और नाडा सभी की कोशिश की।

get-childitem "<drive>:\<folder>" -recurse -force -include *.<ext> | remove-item -force

यकीन है कि दो-प्रवर्तन की आवश्यकता नहीं है, लेकिन यह है कि क्या काम कर रहा है ताकि मैं के साथ चिपका रहा हूँ।


0

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

Remove-Item "c:\temp\*.txt" 

1
अरे, यह AVI फ़ाइलों को हटाने के लिए नहीं लगता है, और यह प्रश्न में फ़ोल्डर से ऐसा करने के लिए प्रतीत नहीं होता है, या तो। क्या आप इस उत्तर में सुधार कर सकते हैं या बता सकते हैं कि इस स्थिति में यह कैसे मदद कर सकता है?
सेरेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.