सवाल विंडोज में एक फ़ाइल को एक बहुत लंबे फ़ाइल नाम से कैसे हटाएं? [डुप्लिकेट]


इस प्रश्न का उत्तर यहां दिया गया है:

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


195
2017-09-23 15:56


मूल


इन फ़ाइलों को कैसे बनाया गया था? - Nick
इस विषय पर मेरी अज्ञानता के लिए खेद है, लेकिन विंडोज़ इन फ़ाइलों को संभाल नहीं लेना चाहिए? क्या विंडोज़ (एडाप्टर से भी) द्वारा स्वचालित रूप से विल एडिन्स पोस्ट किया जाना चाहिए? - Stefanos Kalantzis
@ मोकुबाई- डुप्लिकेट प्रश्न को इस के रूप में एक डुप्लिकेट चिह्नित किया जाना चाहिए यह सवाल पुराना है। - cybermonkey
@cybermonkey: और इसका एक बेहतर जवाब है। - Ellesedil
आगे के पाठकों के लिए, 7zip विधि के साथ CTRL + DELETE मेरी राय में सबसे आसान तरीका है ... - Christian Gollhardt


जवाब:


जब आप निर्देशिका को पूरी तरह से हटाना चाहते हैं और इसमें फ़ाइल के अंदर लंबे नाम हैं, तो रोबोकॉपी बहुत अच्छी नौकरी करता है:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /s /mir
rmdir empty_dir
rmdir the_dir_to_delete

यह काम करता है क्योंकि आंतरिक रूप से रोबोकॉपी Win32 कार्यों के यूनिकोड-जागरूक संस्करणों का उपयोग करता है \\?\ फ़ाइल पथ के लिए उपसर्ग; उन कार्यों में 25 9 के बजाय 2¹⁶-1 (32,767) वर्णों की सीमा है।

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


416
2017-08-29 13:38



फाइल सिस्टम में संग्रहीत कोई छोटा नाम (8.3) नहीं होने पर कुशल। - Antoine RODRIGUEZ
यह मेरे जिद्दी विंडोज स्टोर के साथ अच्छी तरह से काम किया कैश फाइलें जो हटाए जाने से इंकार कर दिया। धन्यवाद! - Samir
काम करने के लिए मुझे रोबोकॉपी लाइन में जोड़ना / शुद्ध करना पड़ा, लेकिन उसके बाद यह चाल चल गई - actionshrimp
रोबोकॉपी मुझे इस गड़बड़ी में मिला है, लेकिन मुझे इससे बाहर निकलने के लिए रोबोकॉपी का उपयोग करने के लिए कभी नहीं हुआ। बहुत बढ़िया जवाब! धन्यवाद! - Jay Michaud
@ साराहोफगाया, मेरा बुरा, यह वास्तव में 2¹⁶ - 1 है - Benoit


कमांड प्रॉम्प्ट से:

dir /X

यह आपकी फाइल / फ़ोल्डर को संक्षिप्त नाम प्रारूप में सूचीबद्ध करेगा। फिर फ़ाइल को हटाने के लिए लिखे गए संक्षिप्त नाम का उपयोग करें:

del LONGF~1.txt

90
2017-09-23 16:01



मुझे वह पसंद है, यह पार्श्व सोच का एक अच्छा सा है। - Col
हालांकि मैं गारंटी नहीं दे सकता कि यह इस मामले में काम करेगा, मैंने फ़ोल्डरों को हटाने के लिए कई बार इसका इस्तेमाल किया है, जिनके अंत में अमान्य वर्ण हैं जो उन्हें सामान्य माध्यमों से हटाना असंभव बनाते हैं। - Will Eddins
यह वर्तमान निर्देशिका में फ़ाइलों और फ़ोल्डर्स के लिए काम करता है, लेकिन यदि आप किसी भी तरह से खुद को ढूंढने का प्रबंधन करते हैं के भीतर एक फ़ोल्डर जिसका पथ बहुत लंबा है, इससे मदद नहीं मिलेगी। उदाहरण के लिए, मैं वर्तमान में एक बहुत लंबे रास्ते में एक कंसोल में हूं और यहां तक ​​कि नहीं भी कर सकता dir या cd ..। - Bobson
@ बॉब्सन यदि आप नहीं कर सकते हैं dir उपयोग pushd बजाय। यह मेरे लिए काम किया। - BadHorsie
यह विंडोज 10 के साथ काम नहीं करता है, प्रदर्शित फ़ाइल नाम लंबा है - Loenix


मैं प्रगतिशील मार्ग में अपना रास्ता काम करता हूं, प्रत्येक क्रमिक मूल फ़ोल्डर को "1" में नामित करता हूं और हटाने का प्रयास करता हूं। आप हर बार पथ को प्रभावी ढंग से छोटा कर रहे हैं और मुझे 4 या 5 से अधिक निर्देशिकाओं में कभी भी काम नहीं करना पड़ेगा जब तक कि मैं अंत में पूरी निर्देशिका संरचना को हटा नहीं पाता (जो आप चाहते हैं या नहीं भी हो सकता है)। आप इसे अंतिम बाल फ़ोल्डर से भी कर सकते हैं और अपना रास्ता ऊपर या नीचे काम कर सकते हैं।


52
2017-09-23 17:40



यह एकमात्र चीज थी जो मेरे लिए काम करती थी। यहां दी गई सभी अन्य चालें और इस तरह के अन्य मंचों में काम नहीं किया। - Andrew Arnott
मदद करने में खुशी... - joeqwerty
एकमात्र सुझाव था जो विचित्र रूप से पर्याप्त काम करता था। - Nestor Ledon
विंडोज़ 10 में ऐसा नहीं कर सकता ... नाम बदलता है "फ़ाइल नाम से लंबे समय तक त्रुटि" त्रुटि - Dawesi
न केवल यह मेरे लिए समस्या को ठीक करता है, यह भी बताता है कि मैं इस मुद्दे के साथ पहली जगह कैसे समाप्त हुआ। मेरे पास एक पथ होना चाहिए जो सीमा के पास था, फिर मैंने एक मूल फ़ोल्डर का नाम बदल दिया (नाम में "बैकअप नवंबर 2016 सेव" जैसे कुछ जोड़ा) जिसने सबफ़ोल्डर में सीमाओं पर फ़ाइलों को धक्का दिया। कारण और साथ ही समाधान को जानना अच्छा है, भले ही मुझे पता है कि यह अन्य तरीकों से भी हो सकता है, मुझे लगता है कि यह लोगों के साथ ऐसा एक आम तरीका है। - eselk


कमांड प्रॉम्प्ट सहित कुछ कार्यक्रमों में (cmd.exe), आप पूर्ण पथ को उपसर्ग करके फ़ाइल लंबाई सीमा के चारों ओर प्राप्त कर सकते हैं \\.\ इस तरह:

\\। \ C: \ कुछ निर्देशिका \ अन्य निर्देशिका \ लंबी फ़ाइल वाले फ़ाइल

13
2017-09-23 16:12



विंडोज 10 में काम नहीं करता है - Dawesi
धन्यवाद, सीएमडी ने Win7 में इसके साथ एक आकर्षण काम किया rm -rf \\directoryname - Philip Pryde


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

तो आपके पास c: \ some \ long \ path ... \ और \ foo \ bar \ फ़ोल्डर्स \ oldfiles \ myoldfile.txt है।

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

अब साझा फ़ोल्डर या उसके अंदर एक पर जाएं और इसे साझा करें, या निम्नानुसार कमांड लाइन का उपयोग करें। मान लीजिए कि आपने फ़ोल्डर "foo" को "fooshare" के रूप में साझा किया है, तो आप कर सकते हैं

net use x: \\mycomputername\fooshare\bar\folders /persistent:no

और एक्स: ड्राइव अब उस शेयर के अंदर फ़ोल्डर "फ़ोल्डर" को सीधे इंगित करता है, इसलिए "x: \ oldfiles \ myoldfile.txt" अब बहुत छोटा है।

("/ लगातार: नहीं" का अर्थ है कि यह अगले रीबूट में नहीं टिकेगा और बाद में आपको भ्रमित करेगा। पूरा होने पर अपने फ़ोल्डर को साझा न करें।)

याद रखें, आपको आवश्यक फ़ाइल वाले फ़ोल्डर को साझा करने की आवश्यकता नहीं है, अगर यह पहले से ही साझा फ़ोल्डर में है, तो आप बस मानचित्र बना सकते हैं के माध्यम से एक लक्षित फ़ोल्डर में शेयर और नेस्टेड फ़ोल्डर पास में फ़ाइल में और यह ठीक काम करता है।

मुझे इस तकनीक का उपयोग दो सर्वरों के बीच एक बड़े पैमाने पर रोबोकॉपी करने के लिए करना पड़ा जब हमें एहसास हुआ कि उपयोगकर्ताओं ने फ़ोल्डर संरचना में काफी गहराई से ड्राइव किया है, इसलिए वे वहां से 255 वर्णों का उपयोग करने में सक्षम थे, लेकिन यह कुल फ़ाइल पथ लंबाई से अधिक हो गया जब स्थानीय ड्राइव रूट से पहुंचे।


13
2018-02-21 17:18



आप उपयोग करके साझाकरण से बच सकते हैं subst x: C:\Some\first\part\of\the\long\path और उसके बाद ड्राइव को हटा दें subst x: /d - mihi
अच्छा प्रयास करें, लेकिन जब आपके पास 10 के के फ़ोल्डर्स घोंसला है तो यह संभव नहीं है। - Julian Knight
subst चाल ठीक से काम करती प्रतीत होती है, जब तक कि फ़ाइल नाम नहीं है इसलिए एक ड्राइव की जड़ पर भी इसे 260 वर्णों से अधिक बनाने के लिए। - Stephen Chung
आपको किसी फ़ोल्डर को स्पष्ट रूप से साझा करने की आवश्यकता नहीं है net use, आप डिफ़ॉल्ट व्यवस्थापक शेयरों का उपयोग कर सकते हैं: net use x: \\localhost\c$\bar\folders /persistent:no - kapex


मुझे मिला सबसे आसान तरीका एक उबंटू लाइव सीडी से बूट करना है।

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


9
2017-09-23 15:59



यह मजाकिया है कि कितनी बार उबंटू लाइव सीडी विंडोज़ समस्याओं का निवारण करने में मदद करेगा ^^ - Ivo Flipse♦
मैंने देखा है कि खुद, डोडी नेटवर्क एक लाइव सीडी आज़माएं, फाइल सिस्टम समस्या लाइव सीडी, दूषित विभाजन तालिका इत्यादि का प्रयास करें .-) - Col
यह एकमात्र समाधान है जो मेरे लिए काम करता है। मैं तुमसे प्यार करता हूँ, लिनक्स! <3 - David Frye
विंडोज़ से बैश रन करें कोई लिनक्स आवश्यक नहीं है। ;-) यदि आप विंडोज 10 चला रहे हैं तो बस "लिनक्स के लिए विंडोज सबसिस्टम" इंस्टॉल करें, मूल रूप से विंडोज़ नौकरी पाने के लिए यूबंटू एपीआई हुक का उपयोग करती है ... "एपीटी, एसएसएच, आरएसआईएनसी, ढूंढ, जीआरपी, अजीक, सेड, सॉर्ट, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, पैच, और उबंटू अभिलेखागार में हजारों बाइनरी पैकेजों में से अधिकांश! "यह एक बहुत ही पूर्ण लिनक्स विकास वातावरण है जो विंडोज़ पर चल रहा है। zdnet.com/article/ubuntu-and-bash-arrive-on-windows-10 - Dawesi
विंडोज़ में LINUX कमांड चलाने के लिए साइगविन एक और विकल्प है - atom88


फ़ाइल को कहीं और कट / पेस्ट करने की निर्देशिका का नाम बदलें, फिर इसे हटाएं। यहाँ काम करता है

या केवल कमांड प्रॉम्प्ट से, अगर आपको परेशानी से गुज़रना पसंद नहीं है।


5
2017-09-23 19:39



यह एक आकर्षण की तरह काम करता है। वहां नीचे खोदना (मेरे लिए, यह सुपर-नेस्टेड था node_modules फ़ोल्डर), इसे अपने डेस्कटॉप पर खींचें और हटा दें। कुल्ला और दोहराएं क्योंकि आप एक समय में कुछ फ़ोल्डर्स जाते हैं। क्या एक अप्रिय समस्या है। - nickb
यह मेरे लिए काम नहीं करता - पेस्ट ऑपरेशन लंबे फ़ाइल नाम के कारण विफल रहा - इससे कोई फर्क नहीं पड़ता कि इसे कहां काटा जाए। - UpTheCreek


शायद सबसे अच्छा तरीका नहीं है और मुझे यह देखने में दिलचस्पी है कि दूसरों के साथ क्या आता है -

मेरे पास यह एक बार था और मैंने बिना किसी किस्मत के कुछ चीजों की कोशिश की। एक अच्छा टूल ढूंढने के बजाय, मैंने विंडोज डिस्क के साथ पुनरारंभ किया, रिकवरी कंसोल पर गया और इसे वहां से हटा दिया। पहली बार काम किया और वास्तव में अच्छी तरह से!

इसके अलावा, सिर्फ आपके लिए एक Google किया और यह पाया - DelinvFile अच्छा लग रहा है लेकिन इसके लिए झुकाव नहीं कर सकता।

संपादित करें - चेतावनी, उपरोक्त को केवल एक परीक्षण है - शायद उतना अच्छा नहीं जितना मैंने पहले सोचा था!


1
2017-09-23 16:00



मुफ्त रिमाफ ठीक काम करता है और काम करता है जब अन्य सभी विचार विफल हो जाते हैं। यह node.js की आवश्यकता है - Julian Knight