सवाल सामान्य हटाने के लिए पथ / नामों के साथ निर्देशिकाओं को कैसे हटाएं


लगता है कि विंडोज़ को हटाने की कोशिश करते समय फ़ाइल नामों की लंबाई सीमा है, हालांकि यह उन फ़ाइलों को बनाए जाने से नहीं रोकेगा।

हमारी निर्माण प्रक्रिया कई अस्थायी फ़ाइलों (कई डब्ल्यूएसडीएल का निर्माण) बनाती है जो इस सीमा से दूर हो जाती हैं। हमारी चींटी स्क्रिप्ट किसी भी तरह से साफ होने पर उन्हें हटाने में सक्षम होती है, लेकिन कभी-कभी मुझे वर्करेरा निर्देशिका (जहां सभी अस्थायी फ़ाइलें जाते हैं) को वास्तव में चींटी से पूरी तरह से साफ किए बिना हटा देना पड़ता है।

यह वही त्रुटियां है यह प्रश्न, लेकिन उत्तर वास्तव में मेरे लिए काम नहीं करते हैं क्योंकि मैं एक निर्देशिका से निपट रहा हूं, फाइल नहीं, और मुझे हमेशा यह नहीं पता कि कौन सी विशिष्ट फाइलें या उपनिर्देशिका समस्या पैदा कर रही हैं। और मैं वास्तव में उन्हें हटाने के लिए किसी भी मैन्युअल प्रक्रिया (एकल आदेश को ट्रिगर करने के अलावा) से बचने की कोशिश कर रहा हूं।

यदि मैं एक्सप्लोरर से निर्देशिका को हटाने का प्रयास करता हूं तो मुझे त्रुटि मिलती है

Cannot delete [file name]: The file name you specified is not valid or too long.  
Specify a different file name

कोशिश कर रहे हैं Remove-Item शक्तिशक्ति में निम्नलिखित त्रुटि देता है:

Remove-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
At line:1 char:12
+ Remove-Item  <<<< -force -Recurse <directory>

क्या किसी को समस्या फ़ाइलों को मैन्युअल रूप से ढूंढने और उन्हें नाम बदलने / नाम बदलने के बिना इस डिलीट त्रुटि को पाने के लिए किसी भी उपकरण या आसान तरीकों के बारे में पता है?


355
2017-12-03 19:23


मूल


मुझे इस प्रश्न को पोस्ट करने से पहले समाधान मिला, लेकिन चूंकि अन्य इसमें भाग ले सकते हैं, इसलिए मैंने इसे पोस्ट करने का फैसला किया ताकि वे उस समाधान को ढूंढ सकें जो मैंने पार किया था। - Herms
ओह मुझे पता है, लेकिन आम तौर पर जब मैं इस तरह की चीजें करता हूं तो मैं कुछ समय के लिए "अनुत्तरित" प्रश्न छोड़ देता हूं कि किसी और के पास बेहतर समाधान है या नहीं। - Herms
द्वारा दूर सबसे सरल समाधान: youtube.com/watch?v=qQTyTprFAOg - TaW
का उपयोग करते हुए Ubuntu या कोई अन्य Linux Bootable CD हम अपने कंप्यूटर को बूट कर सकते हैं Ubuntu या अस्थायी के लिए कोई अन्य ओएस। तो हम फ़ोल्डर का चयन कर सकते हैं और हम इसे आसानी से हटा सकते हैं। - kelum priyadarshane
इस पुराने प्रश्न में कुछ दिलचस्प उत्तर भी हैं: superuser.com/questions/45697/... - AdamV


जवाब:


उपयोग 7-Zip उन्हें हटाने के लिए फ़ाइल प्रबंधक।

यदि आपको अभी भी समस्या हो रही है, तो सुनिश्चित करें कि आप इसका उपयोग करें खिसक जाना+हटाना 7-ज़िप फ़ाइल प्रबंधक के अंदर। अन्यथा, विंडोज उन्हें रीसायकल बिन में ले जाने की कोशिश करता है (जो फिर से असफल हो जाएगा)।


402
2017-12-03 19:48



धन्यवाद - यह एक हिरण के पेड़ से छुटकारा पा लिया जो थोड़ा सा पुनरावर्ती हो गया और हटाने के लिए डेल / आरएमडीआईआर / आरएम / एक्सप्लोरर के लिए बहुत गहरा था - Martin Beckett
शिफ्ट + डेल का उपयोग करके बहुत अच्छा काम किया - 7zip रीसायकल बिन में लंबी पैथ वाली फाइलें नहीं भेज सका .... - cori
+1 7 ज़िप। आपको फ़ोल्डर में नेविगेट करना होगा, और फिर उपयोग करें shift + Del जैसे @ कोरी ने कहा। यदि आप चुनते हैं Delete संदर्भ मेनू से विकल्प, यह वहां विफल रहता है। shift + Del यह! - Urda
7zip Win7 64 के लिए काम नहीं किया, इसलिए लिनक्स ने किया। - Erik Friesen
मैं इसे ऊपर उठाता हूं क्योंकि 7zip के साथ आप एक फ़ोल्डर को भी हटा सकते हैं जिसमें लंबे नेस्टेड फ़ोल्डर्स शामिल हैं। एक समस्या node_module फ़ोल्डर के साथ था जिसमें नेस्टेड फ़ोल्डर के बकवास टन शामिल थे और मैं इसे हटाने में सक्षम नहीं था। 7zip मूल फ़ोल्डर से निर्दोष रूप से तय किया गया। +1 - Gruber


यहां किसी अन्य (मुक्त) उत्तरों में से कोई भी मेरे लिए काम नहीं करता है, लेकिन मुझे एक और साइट पर मिला:

rimraf <dir>

rimraf एक है Node.js पैकेज, तो आपको Node.js को स्थापित करने की आवश्यकता होगी जिसमें शामिल है NPM। फिर आप चला सकते हैं:

npm install -g rimraf

फिर आप दौड़ सकते हैं rimraf कमांड लाइन से।

मुझे यह समाधान मिला क्योंकि एनपीएम खुद ही इस समस्या का कारण बन रहा था जिस तरह से यह निर्भर करता है।

वैसे, rimraf यूनिक्स कमांड से इसका नाम मिलता है rm -rf, जो फ़ाइलों और फ़ोल्डरों को दोबारा हटा देता है।


307
2017-07-04 06:23



कई तरीकों का प्रयास किया। यह सिर्फ पूरी तरह से काम करता है! - Duckegg
सभी का सबसे अच्छा जवाब :) हाँ यह आसान आसान है - Al-Mothafar
यह स्वीकार्य उत्तर होना चाहिए। - NINCOMPOOP
आपका समाधान काम करता है लेकिन यह इतना f ## के-अप है कि मुझे नोड जेएस मॉड्यूल फ़ोल्डरों को हटाने के लिए एक नोड जेएस मॉड्यूल का उपयोग करना है ... मैं अब इस ग्रह पर नहीं रहना चाहता हूं - Benoit P
नोड ने मेरे लिए पहली जगह में समस्या बनाई ... दिलचस्प ... कि उनके पास भी एक समाधान है। - Eric J.


वहाँ है किसी भी कार्यक्रम को स्थापित करने की जरूरत नहीं है इस मुद्दे को हल करने के लिए।

इस मुद्दे का उपयोग आसानी से हल किया जाता है robocopy, 2006 में लॉन्च विंडोज विस्टा के बाद से पूर्वस्थापित किया गया।

उदाहरण के लिए, rmdir /S /Q <dir> कुछ मामलों में विफल होने की सूचना दी गई है। 7zip या किसी अन्य तृतीय पक्ष टूल का उपयोग करने की आवश्यकता नहीं है। पावरहेल एक ओवरकिल है। सिगविन काम कर सकता है, लेकिन हो सकता है कि आपने इसे इंस्टॉल नहीं किया हो। तो, चलो ध्यान केंद्रित करते हैं robocopy

विचार है

  1. उपयोग robocopy कॉपी करने के लिए + अद्यतन
  2. एक से नया खाली फ़ोल्डर 
  3. उस फ़ोल्डर में जिसे आप हटाना चाहते हैं, लक्ष्य।

निष्पादन के बाद robocopy, लक्ष्य निर्देशिका भी खाली होगी।

ये निर्देश कमांड लाइन के लिए हैं। बस विंडोज़ में खोज खोलें, टाइप करें cmd और एंटर दबाएं।

चलो कहते हैं लक्ष्य हटाने के लिए है:

C:\delete\this folder\with a very long name

हम अनुसरण करते हैं:

  1. पहले एक खाली निर्देशिका बनाएँ, f.i. C:\emptyfolder

    mkdir C:\emptyfolder
    
  2. विकल्प का उपयोग करके, खाली निर्देशिका से लक्ष्य पर अद्यतन + अद्यतन करें /purge

    robocopy c:\emptyfolder "C:\delete\this folder\with a very long name" /purge
    
  3. खाली निर्देशिका हटाएं। आपको अब इसकी आवश्यकता नहीं है।

    rmdir c:\emptyfolder
    

चूंकि स्रोत निर्देशिका में कोई फ़ाइल या फ़ोल्डर्स नहीं हैं (C:\emptyfolder), यह लक्ष्य निर्देशिका के तहत फ़ाइलों और फ़ोल्डरों को आसानी से हटा देता है (C:\delete\this folder\with a very long name) recursively!

  • अंतिम चाल: आप हाथ से लिखने से बच सकते हैं

    C:\delete\this folder\with a very long name
    

    एक्सप्लोरर विंडो से फ़ोल्डर खींचकर और टर्मिनल / सेमीडी विंडो में ड्रॉप करके।

सावधान रहे: हटाई गई फाइलें कूड़ेदान में नहीं जायेंगे फ़ोल्डर! एक बार हटा दिए जाने पर, फ़ाइलों को पुनर्प्राप्त नहीं किया जा सकता है।

(से लिया गया BVLANGEN द्वारा "पथ बहुत लंबा? रोबोकॉपी का प्रयोग करें")

पीएस: मुझे एहसास हुआ कि यह जवाब यहां था, कम व्यावहारिक रूप से। विंडोज में एक फ़ाइल को एक बहुत लंबे फ़ाइल नाम से कैसे हटाएं? [डुप्लिकेट]

बेनोइट कहा:

सभी फ़ाइलों से छुटकारा पाने के लिए आपको एक बार से अधिक बार इस प्रक्रिया को पार करने की आवश्यकता हो सकती है।


120
2018-03-03 16:45



धन्यवाद-आप अच्छे महोदय !! यह स्वीकार्य उत्तर अन्य सभी के रूप में भी होना चाहिए काम नहीं किया या एक आवश्यक है तृतीय पक्ष उपकरण। :) - MickyD
यह पूरी तरह से काम करता है ... कुछ भी स्थापित करने की आवश्यकता नहीं है (जहां तक ​​मुझे पता है) और यह तेज़ है। यह स्वीकार्य जवाब होना चाहिए! - ksumarine
यह "c: \ deletefolder" (target dir) के अंतर्गत निर्देशिका पेड़ के कुछ (या सभी) को रखता है। वैसे भी, मेरे लिए एक झपकी में सब कुछ हटा दिया (अनुमान लगाएं कि फाइलें छोटी थीं) और मुझे बस मैन्युअल रूप से <Del> "c: \ deletefolder" करना पड़ा, बच्चे के डीआईआर किसी समस्या के बिना हटा दिए गए। एक जादू की तरह काम किया। +1, स्वीकृत उत्तर होना चाहिए! :) - rld.
@rld, लेकिन "deletefolder" पहले मौजूद था? अन्यथा, मुझे लगता है कि यह खाली होना चाहिए यदि यह एक नई निर्देशिका थी। अन्यथा यह एक गड़बड़ है। मैं "rmdir deletefolder" के लिए एक अंतिम चरण जोड़ सकता हूं। - hectorpal
अत्यधिक पुनरावर्ती निर्देशिकाओं से निपटने पर, यह विकल्प 7zip से बहुत धीमा है। 20 मिनट इंतजार करने के बाद, मैंने उन्हें बेंचमार्क किया और 7zip महसूस किया, हालांकि यह नहीं दिखाता कि प्रगति 50x तेज चल रही थी। - Andy Gauge


मेरा मानना ​​है कि मुझे चीजों को हटाने का एक तरीका मिला है cmd। मूल रूप से मैंने कोशिश की del आदेश, लेकिन यह काम नहीं किया। तब मुझे याद आया rmdir। निम्नलिखित करना:

rmdir /S /Q <dir>

ऐसा लगता है कि काम किया है।


80
2017-12-03 19:24



मेरे लिए काम नहीं किया :( - Andrew Arnott
आरएमडीआईआर चलाने की कोशिश करने से पहले cmd में ड्रॉप करना याद रखें। - brianpeiris
जो लोग इस समाधान का उपयोग करने में असमर्थ हैं उनके लिए मेरे पास एक वैकल्पिक समाधान है जो मेरे लिए काम करता है (बहुत लंबा पथ / फ़ाइल नामों के साथ): पथ को छोटा करने के लिए फ़ाइल (ओं) / निर्देशिका को C: \ पर ले जाएं, फिर वहां से हटाएं। - Anders Sandberg Nordbø
निर्देशिकाएं रखना संभव है कि यह समाधान काम नहीं करेगा, कि 7-ज़िप हटा सकता है। मैंने बस यह मेरे साथ किया था। - SamStephens
यह समाधान असंगत परिणाम प्राप्त कर रहा है। कृपया इसे वोट मत दें। - hectorpal


जिस उपकरण का मैंने उपयोग किया था जब मुझे यह समस्या थी FastCopy। मैने चुन लिया सभी हटा दो ड्रॉपडाउन से, उस निर्देशिका का चयन किया जिसे मैं हटाना चाहता था, और क्लिक किया सभी हटा दो

FastCopy delete dialog screenshot

फास्टकोपी पोर्टेबल है (कोई इंस्टॉलेशन आवश्यक नहीं है), और 32 बिट और 64 बिट संस्करण उपलब्ध हैं।


29
2017-11-25 20:22



यदि आप कमांड लाइन उपकरण की तलाश में हैं, तो आप गिटहब पर प्रकाशित एक छोटे से टूल का उपयोग कर सकते हैं (github.com/epsitec/Tools-RecursiveDelete)। - Pierre Arnaud
मैं नेस्टेड फ़ाइल / फ़ोल्डर का एक पुनरावर्ती उत्पन्न सेट था। यह एकमात्र समाधान काम कर रहा था - Pierluigi
यह मेरे लिए काम करता था, जब कमांड लाइन सामान विफल हुआ, 7zip प्रयास विफल रहा। और यहां तक ​​कि माइक्रोसॉफ्ट का समर्थन भी फंस गया था! - Kit Ramos
यहां वही - मैंने 7zip के साथ फाइलों को मिटाना शुरू कर दिया, लेकिन यह भी बहुत अजीब काम करता था और मुझे वास्तव में इसे हटाने के लिए प्रत्येक निर्देशिका को कई पंक्तियों को Shift + Delere करना था, लेकिन फिर मैंने इस टूल को आजमाया, और एक आकर्षण की तरह काम किया । सभी फाइलों से छुटकारा पाने के लिए इसे दो बार लॉन्च किया। धन्यवाद! - Artanis
धन्यवाद, मेरे लिए भी एकमात्र कामकाजी समाधान, महान !!!! - tim


Cygwin के rm -rf लंबे रास्ते पर अच्छी तरह से काम करता है!


24
2017-09-26 19:40



सिगविन ने मेरे लिए पूरी तरह से काम किया! बस एक -आरएम-आरएफ किया और सभी फाइलें हटा दी गईं। - Ranhiru Cooray
जीएनयू बैश के तहत भी मेरे लिए काम किया, संस्करण 4.1.10 (4) - कृपया - rjzii
गिट बैश कमांड विंडो से चलते समय बहुत अच्छा काम किया। मैंने इसके लिए गिटगुई स्थापित किया था। - Albo Best


अतिरिक्त सॉफ्टवेयर स्थापित किए बिना आप इसका उपयोग कर सकते हैं subst अस्थायी रूप से एक लंबी नाम वाली निर्देशिका में उपनाम बनाने के लिए आदेश।

जैसे अगर आप फ़ोल्डर को मिटाना चाहते हैं C:\Very long directory\that exceed\length limit\blah blah blah\abcde\folder to be deleted आप कमांड का उपयोग कर सकते हैं

subst x: "C:\Very long directory\that exceed\length limit\blah blah blah\abcde"

और फिर आप हटा सकते हैं X:\folder to be deleted विंडोज एक्सप्लोरर में या कमांड प्रॉम्प्ट में आसानी से। अस्थायी ड्राइव अक्षर उपनाम को निकालने के लिए कमांड का उपयोग करें

subst x: /d

24
2017-10-28 06:09



मैंने अन्य सभी उत्तरों (अन्य समान प्रश्नों के उत्तर सहित) की कोशिश की और यह केवल यही था जो मेरे लिए काम करना समाप्त कर दिया। और यह अब तक का सबसे तेज़ था। - glenneroo
यह अब तक का सबसे अच्छा जवाब है: सरल, अंतर्निर्मित विशेषताओं, रजिस्ट्री के साथ कोई गड़बड़ दौर नहीं। स्वीकृत उत्तर होना चाहिए। - Kevin Roche
आसानी से सबसे साफ और सबसे सरल तरीका, केनेथ धन्यवाद। - Seth