सवाल विंडोज़ हटाने में असमर्थ ._। फ़ाइल


मेरे पास वर्तमान में नामित मेरे बाहरी हार्ड ड्राइव की जड़ पर एक फ़ाइल है ._., जिसे मैं अनुमान लगा रहा हूं, कुछ समय पहले मेरे मैकबुक पर इसका उपयोग करने के बाद मेरे हार्ड ड्राइव में जोड़ा गया था। मैं इस फाइल को अपने विंडोज 10 मशीन पर हटाने की कोशिश कर रहा हूं; हालांकि विंडोज़ दावा करता है कि फाइल नहीं मिल सकती है।

Error message from Windows Explorer

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

Error message from elevated command prompt

क्या विंडोज़ के माध्यम से मैं अपनी हार्ड ड्राइव से इस फाइल को हटा सकता हूं?


91
2017-11-08 04:14


मूल


@ आरआर- यूनिक्स फ़ाइल नामों के साथ आप जो दुख कर सकते हैं वह बहुत अधिक हो जाता है। : 3 - Martijn
आपका कमांड प्रॉम्प्ट कुछ अजीब दिखाता है। तुमने किया find "._." लेकिन उद्धरण के लिए छोड़ दिया del ._.। क्या आप ने कोशिश की del "._."? - jpmc26
दिलचस्प घटना। विशेष रूप से इसे हटाना कितना मुश्किल है। क्या आप सुनिश्चित हैं कि फ़ाइल वैध रूप से बनाई गई थी? (मैक के लिए भी इसका नामकरण बहुत अजीब लगता है) - Thomas
मेरा पसंदीदा हिस्सा फ़ाइल को हटाने के आपके प्रयासों की अभिव्यक्ति है। - Workman
"._." आप इसे हटा नहीं सकते क्योंकि कोला एक संरक्षित प्रजाति हैं।


जवाब:


निम्न आदेश चलाएं (व्यवस्थापक के रूप में उन्नत विशेषाधिकार / खुले कमांड प्रॉम्प्ट की आवश्यकता हो सकती है):

del "\\?\F:\._."

बारे में \\?\ उपसर्ग:

फ़ाइल I / O के लिए, "\\?\"पथ स्ट्रिंग के उपसर्ग विंडोज को बताता है   एपीआई सभी स्ट्रिंग पार्सिंग को अक्षम करने और निम्न स्ट्रिंग भेजने के लिए   यह सीधे फाइल सिस्टम के लिए।

...

क्योंकि यह पथ स्ट्रिंग के स्वचालित विस्तार को बंद कर देता है,   "\\?\"उपसर्ग भी".." तथा "."रास्ते में   नाम, यदि आप संचालन करने का प्रयास कर रहे हैं तो उपयोगी हो सकता है   इन अन्यथा आरक्षित रिश्तेदार पथ विनिर्देशकों के साथ एक फाइल पर   पूरी तरह से योग्य मार्ग का हिस्सा।

ध्यान दें कि आप "\\?\"एक सापेक्ष पथ के साथ उपसर्ग।

उदाहरण:

==> set prog>"\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."
08.11.2015  13:25               132 ._.

==> type "D:\bat\Unusual Names\._."
The system cannot find the file specified.

==> type "\\?\D:\bat\Unusual Names\._."
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

==> del "D:\bat\Unusual Names\._."
Could Not Find D:\bat\Unusual Names\._.

==> del "\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."

==>

143
2017-11-08 07:39



एक चैंप की तरह काम किया, धन्यवाद! - Mike Koch
यूआरएल के साथ उस उपसर्ग का उपयोग करना संभव है, अल ए start आदेश? - Steven Penny
... क्या इसका उपयोग लंबाई सीमा को बाईपास करने के लिए किया जा सकता है? (उदा।, हटाएं ए node_modules निर्देशिका।) - jpmc26
@ jpmc26 एमएसडीएन के अनुसार (मेरे उत्तर में दिए गए लिंक देखें), हां। हालांकि, मैं परिदृश्यों से मुलाकात की \\?\  उपसर्ग में प्रयोग किया जाता है del या rmdir आदेश मदद नहीं की। की ओर रुख 7-zip फ़ाइल प्रबंधक। - JosefZ
@ jpmc26: यह कुछ लंबाई सीमाओं को बाईपास कर सकता है। असल में, एक विस्तारित पथ की लंबाई 32K है। लेकिन जैसे अधिकांश पथ C:\Windows या .. विस्तारित नहीं हैं, और उनकी लंबाई केवल 260 है। यह 260 सीमा कई जगहों पर लागू होती है; दुर्भाग्यवश उन स्थानों में से कुछ ही गलत तरीके से उस सीमा को '\\?' पथ पर लागू करते हैं। - MSalters


भले ही प्रश्न का उत्तर दिया जा चुका है, फिर भी मैं एक संभावित वैकल्पिक समाधान प्रदान करना चाहता हूं: विरासत "लघु नाम" (जिसे आप "/ x" विकल्प के साथ dir कमांड में प्रदर्शित कर सकते हैं) का उपयोग करके आप भी अनुमति दे सकते हैं "फंकी" नाम वाली फ़ाइलों पर एक पकड़ प्राप्त करें जिन्हें आप अन्यथा संभाल नहीं सकते हैं:

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
11.11.2015  16:31                 7 ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>dir /x
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>                       .
11.11.2015  16:31    <DIR>                       ..
11.11.2015  16:31                 7 _3E35~1      ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>del _3e35~1

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  44.966.129.664 bytes free

24
2017-11-11 15:38





इंस्टॉल करें 7-ज़िप, इसे खोलें और फ़ाइल का नाम सामान्य नाम पर बदलने के लिए करें (उदाहरण के लिए aaa) और फिर आप इसे हटा सकते हैं। पर मिला इस पद।

मैंने विंडोज एक्सपी पर वीएम में चलने पर इसका परीक्षण किया। मैंने लिनक्स का इस्तेमाल फाइल बनाने के लिए किया था ._. एक साझा निर्देशिका पर।


20
2017-11-08 06:08





बस अपने विंडोज एक्सप्लोरर को ऑप करें, फ़ाइल पर नेविगेट करें। फ़ाइल का नाम बदलें: filename.txt अब आप इसे हटा सकते हैं। यदि आप ऐसा करने में सक्षम नहीं हैं तो आपको यह सुनिश्चित करना होगा कि आपके पास व्यवस्थापकीय अधिकार हैं।

(बीटीडब्लू कारण है कि आप इसे क्यों नहीं हटा सकते हैं क्योंकि फ़ाइल नाम वास्तव में कोई नाम नहीं है और विस्तार वैध नहीं है। फ़ाइल नाम "।" है और एक्सटेंशन "__" है जिसे अनुमति नहीं है।)


-4
2017-11-08 08:37



@ The_IT_Guy_You_Don't_ जैसा कि मैं उत्सुक हूं, ओपी ने इसका उल्लेख क्यों किया? - muru
@ एरी क्लेप, मैं अपने शब्दों को वापस लेता हूं। मैंने इसे एक और समान प्रश्न में पढ़ा होगा - pun


आप फ़ाइल को हटा सकते हैं 1) स्वामित्व ले लो 2) प्रशासक (आप) पूर्ण अनुमति प्रदान करते हैं 3) जो फ़ाइल आप चाहते हैं वह करें

उन्नत सीएमडी प्रॉम्प्ट

टेकटाउन / एफ पूर्ण करने योग्य फ़ाइल के लिए पूर्ण पथ (अंतिम आइटम अव्यवस्थित फ़ाइल होना चाहिए)

icacls Undeletable फ़ाइल / अनुदान प्रशासकों के लिए पूर्ण पथ: एफ

फ़ाइल को हटाएं


-8
2017-11-08 06:04



समस्या यह प्रतीत होती है कि विंडोज़ गैर-अनुरूप फ़ाइल नाम के कारण फ़ाइल तक नहीं पहुंच सकता है, इसलिए अगर यह उत्तर काम करता है तो मुझे आश्चर्य होगा। - Scott