विंडोज डायरेक्टरी से 100,000 फाइलों को हटाने का सबसे अच्छा तरीका क्या है


12

मेरे पास एक निर्देशिका में 100,000 से अधिक फ़ाइलों वाला एक उपयोगकर्ता था। लंबे समय के लिए मशीन लॉक हो जाती है और बेकार हो जाती है जबकि एक्सप्लोरर मेमोरी भरता है और मशीन क्रैश हो सकती है। क्या निर्देशिका और सामग्री को डंप करने का एक सरल तरीका है? हमने कमांड लाइन डेल्ट्री का उपयोग करने की कोशिश की और यह बहुत बेहतर नहीं हुआ।

DaveF

अतिरिक्त -

हमें एक ही उपयोगकर्ता (वास्तव में क्लाइंट) के साथ यह समस्या कई बार हुई है। एक कार्यक्रम अपने रन के दौरान 100s हजारों अस्थायी फ़ाइलों का निर्माण करता है। यदि प्रोग्राम सही ढंग से काम करता है तो इससे कोई फर्क नहीं पड़ता क्योंकि वे धीमे हो जाते हैं क्योंकि यह इसके साथ समाप्त हो गया है। लेकिन हर अब और फिर यह फाइलों की गंदगी को छोड़कर मर जाता है। हमने rmdir और del आदि विधियों का उपयोग करने की कोशिश की है और वे एक्सप्लोरर का उपयोग करने की तुलना में तेज़ हैं, लेकिन हम आम तौर पर समान समस्याओं के साथ समाप्त होते हैं। विभाजन क्षतिग्रस्त हो जाता है, एक अस्पष्टीकृत लॉक की गई फ़ाइल होती है, कुछ फ़ाइल में अनुमति की समस्या होती है, जो काम करने से डिलीट को रोकती है। आम तौर पर इन समस्याओं को रिबूट के साथ तय किया जा सकता है, लेकिन इस मामले में यह एक महत्वपूर्ण प्रणाली है जिसे हम उत्पादन समय में नहीं कर सकते हैं। यूनिक्स पर आप सिर्फ एक आरएम -आरएफ आदि कर सकते हैं और यह त्वरित है और इसके साथ आम तौर पर कोई वास्तविक समस्या नहीं है।

BTW - अनुप्रयोग बदला जा रहा है लेकिन यह कुछ समय के लिए उत्पादन में नहीं जाएगा और मैं हालांकि यह समस्या शायद दूसरों के लिए दिलचस्प थी।

अपडेट - क्योंकि हमारे पास सिस्टम पर एमकेएस नटक्रैकर है (कमांड लाइन उपयोगिताओं के बिना) हमें प्रोग्रामर को एक सरल आरएम एक साथ दस्तक देने के लिए मिला है। यह डेल / डेल्ट्री आदि की तुलना में तेजी से कई ऑर्डर हैं। मुझे यह अजीब लगता है कि मानक विंडोज सिस्टम एडमिन टूल के रूप में ऐसा कोई सरल ऐप आसानी से उपलब्ध नहीं है।


जवाबों:


15

आप उपयोग कर सकते हैं rmdir:

rmdir /s /q FOLDERNAME

झंडे: का /sअर्थ है पुनरावर्ती रूप से हटाएं, /q"शांत" मोड है।


हमने यह कोशिश की - मैं प्रश्न पर और जोड़ूंगा।
डेविड एलन फिंच

यह आपके लिए काम करना चाहिए था। काम किया ?
s_ruchit

हां ज्यादातर - मैंने सवाल में ऊपर दी गई समस्याओं को जोड़ा है। आपके कमेंट के लिए धन्यवाद।
डेविड एलन फिंच

मैं इस जवाब को स्वीकार करने जा रहा हूं। लेकिन एक बेहतर समाधान है जो एक सरल यूनिक्स स्टाइल आरएम का उपयोग करना है लेकिन जैसा कि यह अधिकांश उपयोगकर्ता के लिए उपलब्ध नहीं है, 99% उपयोगकर्ताओं के लिए यह सबसे अच्छा विकल्प है। खिड़कियों के लिए एक यूनिक्स शैली आरएम लागू किया जाना चाहिए जो और कुछ नहीं बल्कि पुनरावर्ती रूप से हटाता है। BTW हमारे प्रोग्रामर MKS remove_tree (ऊपर देखें) ने rmdir को थ्रोड किया ताकि समस्या विंडोज नहीं बल्कि अंतर्निहित ऐप हो।
डेविड एलन फ़ंच

6

मैं सर्वर के साथ इस समस्या का उपयोग कर रहा था जिसे मैं प्रशासित कर रहा था। एक्सप्लोरर को पूरी तरह छोड़ दें और कमांड प्रॉम्प्ट का उपयोग करें। फ़ोल्डर पर नेविगेट करें और "डेल "

इस तरह से आप GUI (खोजकर्ता कचरा है) और रीसायकल बिन के ओवरहेड से बचते हैं।


हमने यह कोशिश की - मैं प्रश्न पर और जोड़ूंगा।
डेविड एलन फ़िंच

4

जब तक आपको विरासत 16-बिट अनुप्रयोगों के लिए इसकी आवश्यकता नहीं होती, तब तक शॉर्ट फ़ाइल नाम पीढ़ी को अक्षम करके प्रदर्शन को बढ़ाने का प्रयास करें। यह बड़ी संख्या में फ़ाइलों के साथ निर्देशिका संचालन पर महत्वपूर्ण प्रभाव डाल सकता है।

Regedt32 select:
"HKLM\system\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameC
reation"=1

फिर उपयोग करें:

RMDIR / S / Q [ड्राइव:] पथ

अपनी सभी फ़ाइलों के साथ निर्देशिका को हटाने के लिए।


यह जानना दिलचस्प है।
डेविड एलन फिंच


3

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


1
हमने यह कोशिश की और कभी-कभी यह इसकी अनुमति नहीं देता। क्लाइंट अब हर बार एक अलग निर्देशिका में कार्यक्रम चलाता है।
डेविड एलन फिंच

पथ और ड्राइव के बीच एक हार्डलिंक बनाएं, अर्थात: हार्ड लिंक "c: \ mylyly app \" जहाँ संग्रहीत फ़ाइलें "ड्राइव X को इंगित करता है: एक स्टार्टअप बैच में
नीम क्लाउड

2

यह पिछले पदों का एक संयोजन है

एक कमांड विंडो खोलें:
File -> Run -> cmd

निर्देशिका निकालें
rmdir /s /q FOLDERNAME

या

फ़ाइलों का एक पैटर्न निकालें
cd \....\directory
del *.[something]

जैसा कि आपने अपने प्रश्न में नोट किया है विंडोज एक्सप्लोरर वास्तव में चीजों को धीमा कर सकता है।

आपके अपडेट को देखने के बाद, मेरा अपना एक
चेक आउट है जो इस सूची की फाइल रिमूवर है


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

1

मेरे पास डेल और आरएम से बेहतर कुछ भी नहीं है, लेकिन भले ही वे बहुत लंबा समय लेते हैं, लेकिन इसके परिणामस्वरूप विभाजन क्षति नहीं होनी चाहिए। लॉक की गई फाइलें हो सकती हैं क्योंकि जो प्रोग्राम बनाया गया था वह अप्रत्याशित रूप से मर गया।

कभी-कभी, भले ही फ़ाइलों को हटाया नहीं जा सकता, उन्हें दूसरे अस्थायी उपनिर्देशिका में ले जाया जा सकता है। मैं बस एक _todel उपनिर्देशिका बनाता हूं और उन्हें वहां स्थानांतरित करता हूं। यह आमतौर पर बेहतर काम करता है अगर मैं पूरी निर्देशिका को एक स्तर ऊपर ले जाऊं, बजाय फाइलों के खुद से।

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


यही कारण है कि मुझे लगता है - IE क्षतिग्रस्त फ़ाइलें लेकिन वे NT कर्नेल द्वारा बंद क्यों नहीं हैं? स्पीड प्रोग्राम की समस्या है इसलिए सांबा या यूएसबी हार्ड डिस्क का उपयोग करना एक गैर स्टार्टर है। लेकिन ग्राहक को प्रत्येक रन के लिए एक अलग विभाजन बनाने और सुधार करने का सुझाव दिया गया है। यकीन नहीं होता कि उन्होंने अभी तक कोशिश की है। - धन्यवाद
डेविड एलन फिंच २0'०

1

फ़ाइलों को हटाने से एक क्षतिग्रस्त विभाजन? फ़ाइलों की संख्या को हटाए जाने के बावजूद, डिस्क के साथ यह एक बड़ी समस्या है।

मैं कमांड लाइन को हटाने की कोशिश करूँगा और जब तक आप एक बंद है जब तक आप नहीं आ सकते, तब तक हटा सकते हैं। फिर उस फाइल को खोलने के लिए क्या प्रक्रिया है यह जानने के लिए प्रोसेस एक्सप्लोरर का उपयोग करें । उस प्रक्रिया को मार डालो (यदि आप कर सकते हैं), और फिर फिर से हटाएं। कुल्ला, दोहराना :)


यह कोशिश करना चाहते हैं, लेकिन हमारे पास मशीन तक सीधी पहुंच नहीं है और एप्लिकेशन की मृत्यु हो गई है। फिर भी धन्यवाद।
डेविड एलन फिंच

1

'लाइव' लिनक्स सीडी, rm -rf का उपयोग करके रिबूट करें


हम इस सर्वर को केवल रिबूट नहीं कर सकते क्योंकि यह क्लाइंट के लिए महत्वपूर्ण है - लेकिन उत्तर के लिए धन्यवाद।
डेविड एलन फिंच

1

Kinda hacky, लेकिन आप एक स्क्रिप्ट बना सकते हैं, जो फाइलों को डिलीट कर देगी, मुझे फॉर्मेट का पता नहीं है, लेकिन यह मानते हुए कि यह फाइल है जो अक्षर az से शुरू होती है, आप कर सकते हैं

deltree /y a*
deltree /y b*
...
deltree /y z*

अपनी पसंद की निष्कासन विधि के साथ डेल्ट्री बदलें। शायद धीमी हो, लेकिन कम त्रुटि प्रवण?

sidenote: आप rm जैसी कमांड प्राप्त करने के लिए cygwin को स्थापित करने का भी प्रयास कर सकते हैं जो संभवतः एक फ़ाइल के साथ एक त्रुटि का सामना करने के बाद भी फ़ाइलों को हटाना जारी रखेगा।


यह कोशिश की गई थी लेकिन यह वास्तव में समस्या को हल नहीं करता था - वैसे भी धन्यवाद।
डेविड एलन फिंच

हमारे पास MKS Nutcracker भी है, लेकिन सुरक्षा कारणों से कमांड लाइन उपयोगिताओं को हटा दिया गया है - पसंद नहीं। लेकिन जो हमने किया है वह स्वयं rm लिखा है और यह काम करता है।
डेविड एलन फिंच

1

सभी के ऊपर विभिन्न विधियाँ काम करती हैं। यदि आपके पास एक अंगूठे ड्राइव पर लोड किया गया है, तो आप इसे केवल अपने स्थानीय यूएसबी में प्लग कर सकते हैं, अपने साइबरविन शेल को फायर कर सकते हैं और ऊपर बताए अनुसार आरएम कमांड को चला सकते हैं। यह यूनिक्स लचीलेपन को हाथ में रखने का एक आसान तरीका है।


यह एक उचित समाधान है जब आप सिस्टम का प्रबंधन करते हैं।
डेविड एलन फिंच

1

आप रिकवरी कंसोल, या उन लाइनों के साथ कुछ भी बूट कर सकते हैं। ओएस के साथ किसी भी अजीब मुद्दों को पूरी तरह से अनदेखा करना चाहिए।


क्षमा करें, हम केवल सर्वर को रिबूट नहीं कर सकते, लेकिन उत्तर के लिए धन्यवाद।
डेविड एलन फिंच

1

एक लिनक्स मशीन से फ़ोल्डर माउंट करें और वहां से पुनरावर्ती हटाएं।

# mount -t cifs //server/share /mnt/tobedeleted -o username=yourshareusername

# rm /mnt/tobedeleted/* -R

तुम भी एक नियमित अंतराल पर फ़ाइलों को हटाने के लिए एक क्रॉन नौकरी का उपयोग कर सकते हैं।


क्या आपने यह कोशिश की है?
डेविड एलन फिंच

1

क्यों न सिर्फ रोबोकॉपी का उपयोग करें और एक खाली निर्देशिका को दर्पण करें?

बस एक खाली फ़ोल्डर बनाएँ, और फिर उपयोग करें:

ROBOCOPY C:\ThisIsAnEmptyFolder C:\Users\SomeUser\Desktop\SomeFolderWithTempFiles /MIR

0

यदि कोई अन्य सुझाव काम नहीं कर रहा है, तो क्या आपने अपने I / O को गति देने पर विचार किया है?

बेहतर नियंत्रकों खरीदें, तेजी से डिस्क ..

या मुझे आश्चर्य है, अगर फाइलें अस्थायी होती हैं (जैसा कि आप समझते हैं) और आकार की अनुमति है, तो आप बॉक्स (सस्ते) में अतिरिक्त रैम जोड़ सकते हैं और रैम डिस्क सेट कर सकते हैं?

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


प्यार करो, लेकिन मुझे नहीं लगता कि ग्राहक इस बात का पता लगाएगा कि वे कार्यक्रम के किसी नए संस्करण की उम्मीद कर रहे हैं - जवाब के लिए धन्यवाद।
डेविड एलन फिंच

यूके में सर्वर रैम वर्तमान में GBP 10 प्रति गिगाबाइट के बारे में है।
टोमेनिंग

सही है लेकिन ग्राहक मशीन के लिए एक्स का भुगतान करता है (एक उद्धरण से) और वाई को अधिक खर्च करने का कोई कारण नहीं देखता है।
डेविड एलन फिंच

क्योंकि निर्दिष्ट सर्वर पर्याप्त रूप से काम नहीं करता है?
टॉमफैनिंग जू

यह नौकरी के लिए काफी अच्छा है। समस्या यह है कि कार्यक्रम में एक बग है जो तय होने की प्रक्रिया में है। वे कोई और पैसा खर्च नहीं करने वाले हैं।
डेविड एलन फिंच

0

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


मुझे लगता है कि क्लाइंट ने यह कोशिश की और यह सामान्य रूप से एक्सप्लोरर का उपयोग करने से बेहतर नहीं था। साभार
डेविड एलन फिंच

0

क्या SHIFT + DEL के साथ डिलीट करने से स्पीड पर कोई फर्क पड़ता है?


जब मैंने इसे अंतिम रूप से आजमाया तो यह उतना ही था।
डेविड एलन फिंच

वास्तव में मैंने इसे फिर से आजमाया है - एक पुरानी स्थापना के साथ और मैं अभी भी प्रतीक्षा कर रहा हूं। मैं संभवतः MKS rm को छोड़ दूंगा और उसका उपयोग करूंगा।
डेविड एलन फिंच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.