विंडोज़ में फ़ाइल नामों की सूची का उपयोग करके फ़ोल्डर से फ़ाइलों को कैसे हटाएं?


23

मेरे पास एक फ़ोल्डर है जिसमें 2K + फाइलें हैं, मुझे लगभग 200 को हटाने की आवश्यकता है, मेरे पास एक सूची में सभी फ़ाइल नामों के साथ एक txt फ़ाइल है जिसे मुझे किसी आदेश में निकालने की आवश्यकता है, मैं सूची का उपयोग करके फ़ोल्डर से विशिष्ट फ़ाइलों को कैसे निकालूं? (ओएस 7 खिड़कियां है)

जवाबों:


18

सरल तरीका txt फ़ाइल mydel.batको हटाने के लिए फ़ाइलों की निर्देशिका में नामक एक फ़ाइल में प्रतिलिपि करें । Microsoft Word जैसे संपादक का उपयोग करके इस फ़ाइल को संपादित करें। आमतौर ^pपर वर्ड में न्यूलाइन पर एक वैश्विक प्रतिस्थापन करें । इसे बदलें space/f^pdelspace। यह बदल जाएगा

File1.bin
File20.bin
File21.bin

के साथ ( /f"केवल पढ़ने के लिए फ़ाइलें हटाएँ"):

File1.bin /f
del File20.bin /f
del File21.bin /f
del

delअंतरिक्ष को जोड़ने और अंतिम लाइन को हटाने के लिए मुट्ठी लाइन को संपादित करें ।

बैच कमांड चलाएँ।


/ Y स्विच के अलावा, जो जाहिरा तौर पर win7 डेल कमांड में काम नहीं करता है, यह काफी अच्छी तरह से काम करता है .. धन्यवाद
Avishking

2
शायद /fइसके बजाय "केवल पढ़ने के लिए फ़ाइलें हटाएँ" के लिए होना चाहिए /y
afrazier

सही वायुमंडल। मैं / Y मिला रहा था जो XCOPY और एक या दो अन्य DOS प्रोग्रामों के साथ काम करता है 'कार्रवाई की पुष्टि करने के लिए संकेत देना'
Kingchris 7

संपादकों में, जो जानते हैं कि कैसे करना है / regex से बदलना, जैसे कि नोटपैड ++, आपको "^" को "डेल" और "$" को "/ f" से बदलना होगा, जहां ^ प्रत्येक पंक्ति और $ की शुरुआत का प्रतिनिधित्व करता है - समाप्त।
दान मायरस्कु

38

कमांड लाइन पर इसे टाइप करें, इसके लिए अपनी फ़ाइल प्रतिस्थापित कर रहा है files_to_delete.txt:

for /f %i in (files_to_delete.txt) do del %i

.cmdफ़ाइलों (डबल %%) में शामिल करने और फ़ाइल नामों में रिक्त स्थान से निपटने में सक्षम इसके लिए उपयुक्त संस्करण :

for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"

1
यह वास्तव में फाइलों के बजाय फाइल सूची को स्वयं हटा देता है ... मुझे फिर से सूची बनानी थी: |
शाम

4
मेरी गहरी माफ़ी। मैं /fझंडा भूल गया ।
विलियम जैक्सन

यह बहुत बुरा है, मुझे पता नहीं था कि कमांड लाइन समर्थित छोरों की तरह है। कमांड लाइन के इस और अन्य पेचीदगियों के बारे में एसयू ब्लॉग के लिए एक ब्लॉग पोस्ट लिखने की देखभाल करें?
Ivo फ्लिप्से

1
@ आईवो: आप अधिक जानने के लिए computerhope.com/batch.htm या superuser.com/questions/tagged/batch पर एक नज़र डालना चाह सकते हैं । यूनिक्स की तरह, लिपियों (बैच फ़ाइलों) में जो कुछ भी किया जा सकता है, वह सीधे कमांड-लाइन से भी किया जा सकता है।
ब्लूराजा - डैनी पफ्लुगुएफ्ट

मैंने एक बैट फ़ाइल बनाई और 2 उदाहरण की प्रतिलिपि बनाई: परिणाम: files_to_delete.txt अभी भी हटा दिया गया है। (यहां तक ​​कि / एफ ध्वज के साथ)
bvdb

18

PowerShell का उपयोग करना:

Get-Content c:\path\to\list.txt | Remove-Item

1
वाह, यह बैच की तुलना में अधिक पठनीय है।
TheLQ

भविष्य के पाठकों के लिए ... मुझे >यह काम करने के लिए पाइप ऑपरेटर को बदलना पड़ा । यानी Get-Content c:\path\to\list.txt > Remove-Item... मेरे पास पूरा UNC पथ था list.txt। उम्मीद है की यह मदद करेगा।
नैटज

@NateJ मैंने >इसका उपयोग करने की कोशिश की और इसने चीजों को हटाने के बजाय सिर्फ मेरे लिए एक फ़ाइल बनाई।
ब्रायन जे

@BrianJ हम्म, मुझे जो मैंने किया था उस पर वापस जांचना होगा .. अच्छा कैच।
नैटज

1

मैं कल्पना करता हूं कि इसे शक्तियां के साथ किया जा सकता है।

पर्ल को जानने के बाद , मैं इस तरह की चीज के लिए इसका इस्तेमाल करता हूं

perl -l -n -e "unlink" filenames.txt

1

कुछ बदलावों के बाद पहला तरीका काम करता है:

  1. नोटपैड खोलें
  2. एक्सटेंशन के साथ सभी फ़ाइल नामों को कॉपी करें जिन्हें delशुरुआत में जोड़ने के बाद हटाए जाने की आवश्यकता है

    del File1.bin
    del File20.bin
    del File21.bin
    
  3. फ़ाइल को xyz.batउसी फ़ोल्डर में सहेजें

  4. फ़ाइल चलाएँ

2
... प्रश्न में पाठ फ़ाइल में लगभग 200 फ़ाइल नाम हैं। क्यों आप delमैन्युअल रूप से जोड़ रहे हैं जैसे आप प्रस्ताव कर रहे हैं, जबकि समाधान पहले से ही इसे स्वचालित करने के लिए पोस्ट किए गए थे? एक तरफ के रूप में: किसी भी सेंस एडिटर को लाइन एंडिंग (या रेगुलर एक्सप्रेशंस का उपयोग करते हुए लाइन शुरू होता है), मैक्रोज़, या ब्लॉक या कॉलम मोड एडिटिंग सहित खोजने और बदलने के लिए कुछ समर्थन मिलेगा (अक्सर विकल्प या Alt दबाकर और फिर एक का चयन करके शुरू किया गया ब्लॉक करें, जिसके बाद एक बार में कई लाइनों पर टाइप किया जा सकता है)।
अर्जन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.