cmd.exe: "del * .txt" भी * .txt1 आदि को हटाता है [डुप्लिकेट]


8

संभव डुप्लिकेट:
WinXP dir कमांड: 3 और 4 चार एक्सटेंशन समान हैं?

मैं एक लंबे समय (कम से कम WinXP और Windows7) के लिए cmd.exe के एक अजीब व्यवहार से नाराज हूं। जैसी कमांड del *.txtभी *.txt1फाइलों को हटा देगी ('.txt' के बाद जितने भी अक्षर होंगे)। यह एक प्रसिद्ध बग है या क्या?

जवाबों:


8

यह कभी-कभार सामने आया हुआ है?

व्यवहार की एक व्याख्या यहाँ है , एक संभावित कार्य के साथ-साथ पूर्ण।

सारांश: यह उस तरह से आता है जब NTFS छोटे (8.3) फ़ाइलनामों को संभालता है, पुराने सामान के साथ संगतता के लिए जो "नए-फंसे हुए" लंबे फ़ाइलनाम को संभाल नहीं सकता है। dir /xसंक्षिप्त नाम देखने के लिए इस्तेमाल किया जा सकता है, जैसे:

C:\>dir /x *~*
 ...
02/25/2011  08:18 AM    <DIR>          DOCUME~1     Documents and Settings
05/28/2011  12:02 AM    <DIR>          PROGRA~1     Program Files
 ...

तीन वर्णों से अधिक के विस्तार को केवल उनके छोटे फ़ाइलनाम के लिए छोटा कर दिया जाएगा; इसलिए .txt1, .txtxtxtxt, .txt_file, आदि, सब बन .txt


6

एक्सटेंशन में 4 से अधिक अक्षरों वाली फाइलें (और पाठ्यक्रम के अन्य नियम भी लागू होते हैं), एक संक्षिप्त नाम प्राप्त करें, इसलिए उदाहरण के लिए "foo.txt1" में शॉर्टनेम "foo ~ 1.txt" है। DEL(जैसे DIRऔर संभवत: अधिकांश अन्य cmd.exeनिर्मित कमांड) भी शॉर्टनेम पर काम करेंगे। संबंधित विषय पर चर्चा के लिए यहां देखें: http://blogs.msdn.com/b/oldnewthing/archive/2005/07/20/440918.aspx


खदान से अधिक आधिकारिक लिंक के लिए +1।
जिम डेविस

2

यह एक FAT / VFAT फाइल सिस्टम पर होगा? यदि ऐसा है, तो आप उन हैकरी द्वारा काटे जा रहे हैं जिनका उपयोग 8.3 स्कीमा में फिट नहीं होने वाले नामों का प्रतिनिधित्व करने के लिए किया जाता है; वहाँ एक DIRविकल्प है जो आपको छोटे नाम दिखाता है, जो वास्तविक फ़ाइल नाम से शुरू होगा, लेकिन ~विस्तार से पहले एक और एक संख्या है, फिर विस्तार 3 वर्णों पर छाया हुआ है। (उदाहरण: C:\Program Filesआमतौर पर अनुवाद C:\PROGRA~1।) एक वाइल्डकार्ड अप्रत्याशित रूप से इन नामों से मेल खा सकता है। यह नेटवर्क शेयरों पर NTFS या (मुझे लगता है) पर नहीं होना चाहिए । सिवाय इसके कि डॉस अभी भी नहीं मरा है, ऐसा लगता है ...।


2

आप संभवतः Forfilesवर्कअराउंड के लिए कमांड का उपयोग कर सकते हैं

उदाहरण के लिए।

Forfiles  -s -m *.txt -c "cmd /C del /q @path"

केवल txtअंत का मिलान करता है।

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