उस फ़ोल्डर को कैसे हटाया जाए जिसका नाम डॉट ("।") के साथ समाप्त हुआ हो?


89

मुझे मालवेयर द्वारा बनाए गए कुछ फोल्डर मिले जिनका नाम एक डॉट जैसे C:\a.\या के साथ समाप्त हो गया C:\b.\

मुझे एक समाधान मिला जो ऐसे फ़ोल्डर को कमांड से हटा सकता है rd /q /s "C:\a.\"लेकिन अगर मैं जीत एपीआई कहता हूं RemoveDirectory, तो यह वापस आ जाता है ERROR_FILE_NOT_FOUND

और मुझे आश्चर्य है कि ऐसी निर्देशिका को हटाने के लिए एक फ़ंक्शन कैसे लिखना है, धन्यवाद

मैं इस तरह से अपने विंडोज एक्सपी एसपी 3 सिस्टम पर परीक्षण करता हूं

एक फ़ोल्डर बनाएँ C:\>mkdir a..\\\और मैं इस फ़ोल्डर तक पहुँचने के लिए डबल क्लिक नहीं कर सकता। और मैं कमांड से हटा सकता हूं rd /q /s "C:\a.\"

क्या विंडोज सिस्टम एपीआई (एस) कि rd /q /sकमांड कॉल?


मुझे विश्वास नहीं हो रहा है कि यह अभी भी विंडोज 10 में होता है, विंडोज अपडेट से ही (यह अपडेट होने के बाद भी विंडोज को हटा नहीं सका)।
दमन सब्जियां

जवाबों:


147

यहाँ इस समस्या का हल है :

rd /s "\\?\C:\Documents and Settings\User\Desktop\Annoying Folder."

1
प्रश्न फ़ोल्डर को हटाने के लिए एक एपीआई फ़ंक्शन चाहता है, और कहता है कि इसे हटाया जा सकता है rd
जेसीएल

4
पर्याप्त रूप से उचित - शायद इसीलिए इसे स्वीकार किए गए उत्तर के रूप में चिह्नित नहीं किया गया है, लेकिन यह एक ही समस्या के साथ अटके हुए उपयोग के लिए बहुत उपयोगी है, लेकिन जहां हम आरडी का उपयोग कर सकते हैं।
david.barkhuizen

2
आपने अभी-अभी मेरी नसों को बचाया है। धन्यवाद! : डी
बेनी न्युगबॉयर

8
ध्यान दें कि यह केवल CMD.exe NOT PowerShell
Lorne K

2
CMD.exeयदि यह गैर-एलिवेटेड कमांड प्रॉम्प्ट में काम नहीं करता है, तो भी व्यवस्थापक मोड में चलाने का प्रयास करें
greg

63

समाधान: जब आप RemoveDirectory को कॉल करते हैं, तो सुनिश्चित करें कि आप स्ट्रिंग " \\?\" के साथ पथ को उपसर्ग करते हैं ।


स्पष्टीकरण: यह डॉट के साथ सब कुछ करना है। MSDN के अनुसार, ऐसे कुछ मामले हैं जहाँ आप NTFS वॉल्यूम पर फ़ाइल या फ़ोल्डर को हटाने में सक्षम नहीं हो सकते हैं, विशेष रूप से तब जब Win32 नाम स्थान में फ़ाइल का नाम अमान्य है (जिसके कारण आप फ़ाइल का उपयोग करके फ़ाइल को खोलने में असमर्थ हैं विंडोज एक्सप्लोरर में सामान्य तरीके)।

यदि फ़ाइल नाम में अमान्य नाम शामिल है (उदाहरण के लिए, फ़ाइल नाम में अनुगामी स्थान या अनुगामी अवधि है या फ़ाइल नाम केवल स्थान से बना है) तो आप फ़ाइल को नहीं हटा सकते। इस समस्या को हल करने के लिए, एक उपकरण का उपयोग करें जो फ़ाइल को हटाने के लिए उपयुक्त आंतरिक सिंटैक्स का उपयोग करता है। आप इन फ़ाइलों पर काम करने के लिए कुछ उपकरणों के साथ "\\? \" वाक्यविन्यास का उपयोग कर सकते हैं, उदाहरण के लिए:
del "\\? \ c: \ path_to_file_that में एक अनुगामी space.txt सम्‍मिलित है"
इस समस्या का कारण कारण 4 के समान है। हालाँकि, यदि आप किसी फ़ाइल को खोलने के लिए विशिष्ट Win32 सिंटैक्स का उपयोग करते हैं, जिसमें उसके नाम में अनुगामी स्थान या अनुगामी अवधियाँ हैं, तो वास्तविक फ़ाइल खोलने से पहले अनुगामी रिक्त स्थान या अवधियों को छीन लिया जाता है। इसलिए, यदि आपके पास एक ही फ़ोल्डर में दो फाइलें हैं जिनका नाम "AFile.txt" और "AFile.txt" है (फ़ाइल नाम के बाद का स्थान नोट करें), यदि आप मानक Win32 कॉल का उपयोग करके दूसरी फ़ाइल खोलने का प्रयास करते हैं, तो आप खोलें इसके बजाय पहले फ़ाइल। इसी तरह, यदि आपके पास एक फ़ाइल है जिसका नाम सिर्फ "" (एक स्थान वर्ण) है और आप इसे मानक Win32 कॉल का उपयोग करके खोलने का प्रयास करते हैं, तो आप इसके बजाय फ़ाइल के मूल फ़ोल्डर को खोलते हैं। इस स्थिति में, यदि आप इन फ़ाइलों पर सुरक्षा सेटिंग्स बदलने का प्रयास करते हैं, तो आप या तो ऐसा करने में सक्षम नहीं हो सकते हैं या आप अनपेक्षित रूप से विभिन्न फ़ाइलों पर सेटिंग्स बदल सकते हैं।

(स्रोत: http://support.microsoft.com/?kbid=320081 )


मेरे द्वारा ""। आपका बहुत बहुत धन्यवाद !
AFract

1
इसने आरडी पर स्विच करने का काम किया जैसेrd "\\?\C:\Users\ahmed\Desktop\buggy."
गनियस

यह cmd पर बहुत अच्छा काम करता है लेकिन क्या पॉवरशेल के बराबर है? rdpwsh में एक उपनाम है, remove-itemजो `\\? 'का समर्थन नहीं करता है।
कागामी सास्का रोशलाइट नाइट

1
ज़रूर करता है। मैंने इस तरह की फ़ाइल को हटाने के लिए सिर्फ PowerShell के rd का उपयोग किया, और यह ठीक काम किया। अपने सिंटैक्स को दोबारा जांचें।
सिल्वरबैकनेट

वाह। एक डेटासेट पर कुछ प्राकृतिक भाषा प्रसंस्करण करने की कोशिश करते समय इस मुद्दे पर ठोकर खाई (डेटासेट में प्रत्येक फ़ाइल का नाम है {IncrementalNumber}.), और मैं इस बारे में बहुत उलझन में था कि मेरे डेटा प्रसंस्करण स्क्रिप्ट विफल क्यों हो रहे थे। यह अब समझ में आता है, लेकिन ऐसा लगता है कि व्यवहार इतना अप्रत्याशित है कि किसी स्थान या अवधि में समाप्त होने वाले फ़ाइलनामों को गलत तरीके से संभालने वाले अनुप्रयोगों के कारण इसमें सुरक्षा व्यवधान हो सकते हैं।
स्पेंसर डी

46

Ive ने इसे SU पर पोस्ट किया और मैंने इसे यहां भी पोस्ट करने का फैसला किया। इसे प्राप्त करने का सबसे सरल और सबसे तेज़ और आसान तरीका। मैं अब हंस रहा हूं कि यह कितना सरल है।

  1. WinRAR स्थापित करें
  2. चित्रों से चरण प्रक्रिया का पालन करें:
  3. यहाँ छवि विवरण दर्ज करें
  4. यहाँ छवि विवरण दर्ज करें
  5. यहाँ छवि विवरण दर्ज करें
  6. यहाँ छवि विवरण दर्ज करें

मैंने खुद WinRaR स्थापित किया था, इसलिए मैंने इसमें वर्कअराउंड प्रदर्शित करने का निर्णय लिया।
यह वर्कअराउंड 7zip का उपयोग करके भी संभव है।

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


6
क्या रचनात्मक समाधान है!
नोसगोरोथ

8

यदि आपने git स्थापित किया है (आप यहाँ से ir प्राप्त कर सकते हैं ) तो यह उतना ही सरल है:

  1. फ़ाइल एक्सप्लोरर को उस स्थान पर नेविगेट करें जहाँ समस्याग्रस्त फ़ोल्डर स्थित है।
  2. संदर्भ मेनू (दाएं माउस बटन)> यहां बैश करें।
  3. rm -rf Foldername./

rm: cannot remove ‘.bin’: Directory not empty
ग्रीन

@Green यदि आपके पास फ़ोल्डर सामग्री को हटाने की अनुमति है, तो -rfभाग को फ़ोल्डर सामग्री का ध्यान रखना चाहिए।
लॉरिनास लाज़ौकास

7

जब आप देखते हैं कि नाम "a" है, लेकिन वास्तविक नाम "a .." है

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

rd /q /s "C:\a..\"

और आप इस कोड द्वारा फ़ोल्डर का पता लगाने की कोशिश कर सकते हैं:

for /f "tokens=3 delims=<>" %%a in ('dir /ad /x "C:\*" ^| findstr " a\.\.$"') do (
  for /f "tokens=1" %%b in ("%%a") do start "" "%%~fb"
)

5

मैंने " WinRar " एक साधारण RAR, ज़िप प्रोसेसर का उपयोग किया। आप किसी भी प्रकार के फ़ाइल नाम संपादक का उपयोग कर सकते हैं। बस उस निर्देशिका को खोलें जहां आपकी फ़ाइल WinRar में है और जिस फ़ाइल / फ़ोल्डर को आप नया नाम बदलना और भरना चाहते हैं उसे राइट क्लिक करने के बाद नाम बदलें।


यह कैसे मदद करने वाला है?
तवो

1
आपको फ़ाइल / फ़ोल्डर ब्राउज़ करने और फ़ाइल का नाम बदलने में मदद करता है ... और जो भी किया गया हो।
आर्यन

1
इसने वास्तव में मेरी मदद की; मैंने फ़ाइलों का एक गुच्छा अनज़िप करने के लिए WinRar का उपयोग किया था, जिनमें से एक में एक अवधि में समाप्त होने वाला फ़ोल्डर शामिल था। विंडोज इसे हटा नहीं सकता था या वास्तव में इसका नाम बदल सकता था, लेकिन मैं इसे WinRar में कोई समस्या नहीं बता सकता था और फिर इसे विंडोज एक्सप्लोरर (10 जीत) में हटा सकता था। धन्यवाद!
निक मे

2

उन फ़ाइलों और फ़ोल्डरों को हटाने के लिए अनलॉकर प्रोग्राम का उपयोग करने का प्रयास करें जिन्हें आप सामान्य रूप से हटा नहीं सकते हैं।


3
मैं उत्सुक हूं कि यह कैसे अनलॉक कर सकता है!
jerry.liu 8

0

विंडोज 10 पर उबंटू से बैश आरएम कमांड का उपयोग करें


rm: cannot remove ‘.bin’: Directory not empty
ग्रीन

0

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

फाइलें रखने के लिए। जहां फ़ाइल या फ़ोल्डर स्थित है, वहां कमांड प्रॉम्प्ट और सीडी खोलें।
अब टाइप करें " bash"
इससे प्रॉम्प्ट में बैश खुल जाएगा। अब दर्ज करें mv '[folder or file you want to move]' '[new name (can include path)]'(यदि आप इसके सभी विकल्पों का उपयोग करना चाहते हैं तो एमवी के लिए और अधिक पढ़ें) 'मैन एमवी' का उपयोग करें यह अपना मैनुअल पेज खोलेगा (फिर बैश लौटने के लिए क्यू का उपयोग करें))
एमवी कमांड चाल के लिए छोटा है, लेकिन इसके चीजों का नाम बदलने का एक द्वितीयक कार्य है।
बैश में भी 'सिंगल कोट्स' का इस्तेमाल होता है, न कि सामान्य "डबल कोट" का, क्योंकि बैश को 'सिंगल कोट्स' की उम्मीद होती है।

एक उदाहरण है। मान लें कि आपका फ़ोल्डर नाम " data 1." में स्थित है c:\users(इसलिए त्रुटि फ़ोल्डर का पूर्ण पथ है c:\users\data 1.
। किसी भी विधि का उपयोग करके ओपन कमांड प्रॉम्प्ट
। 2. दर्ज करें cd c:\users
। अब bashइस लोड को उस फ़ोल्डर में bash टाइप करें जो आप पहले
4 में थे । अंत में mv 'data 1.' 'data 1'
5 टाइप करें । फ़ोल्डर अब सुलभ है और आप इसे हटाना चुन सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.