कहा जाता है, मैं बैच स्क्रिप्ट के साथ यूनिकोड वर्णों के साथ कुछ फ़ाइलों को हटाने की कोशिश कर रहा हूं (यह एक आवश्यकता है)। तो मैं cmd चलाता हूं और निष्पादित करता हूं:बैच स्क्रिप्ट निष्पादित नहीं की जाती है अगर chcp को
> chcp 65001
यूटीएफ -8 को प्रभावी ढंग से कोडपेज सेट करना। और यह काम करता है:
D:\temp\1>dir
Volume in drive D has no label.
Volume Serial Number is 8C33-61BF
Directory of D:\temp\1
02.02.2010 09:31 <DIR> .
02.02.2010 09:31 <DIR> ..
02.02.2010 09:32 508 1.txt
02.02.2010 09:28 12 delete.bat
02.02.2010 09:20 95 delete.cmd
02.02.2010 09:13 <DIR> Rún
02.02.2010 09:13 <DIR> Гуцул Каліпсо
3 File(s) 615 bytes
4 Dir(s) 11 576 438 784 bytes free
D:\temp\1>rmdir Rún
D:\temp\1>dir
Volume in drive D has no label.
Volume Serial Number is 8C33-61BF
Directory of D:\temp\1
02.02.2010 09:56 <DIR> .
02.02.2010 09:56 <DIR> ..
02.02.2010 09:32 508 1.txt
02.02.2010 09:28 12 delete.bat
02.02.2010 09:20 95 delete.cmd
02.02.2010 09:13 <DIR> Гуцул Каліпсо
3 File(s) 615 bytes
3 Dir(s) 11 576 438 784 bytes free
तब मैं बैच लिपि में एक ही rmdir
आदेशों रख दिया और UTF-8 एन्कोडिंग में सहेजें। लेकिन जब मैं कुछ भी नहीं करता, सचमुच कुछ नहीं: इस मामले में बैच स्क्रिप्ट से काम भी गूंज नहीं करता है। OEM एन्कोडिंग में स्क्रिप्ट को सहेजने से भी मदद नहीं मिलती है।
तो ऐसा लगता है कि जब मैं कंसोल में यूटीएफ -8 में कोडपेज बदलता हूं, तो स्क्रिप्ट बस काम करना बंद कर देती हैं। क्या कोई जानता है कि इसे कैसे ठीक किया जाए?
जल्द ही एक वास्तविक उत्तर पर विचार और लिखना, लेकिन दो प्रश्न: क्या आप सुनिश्चित करते हैं कि आपकी बैच फ़ाइल में शुरुआत में यू + एफईएफएफ नहीं है? और क्या आप बैच फ़ाइल के बजाय शायद वीबीस्क्रिप्ट का उपयोग कर सकते हैं? यूनिकोड समर्थन वहां बहुत आसान है। – Joey
नहीं, बैच फ़ाइल में कोई BOM नहीं है। मैं वीबीएस का उपयोग कर सकता हूं, लेकिन मैं सिर्फ यह जानना चाहता था कि मेरी समस्या को हल किया जा सकता है या नहीं। – Andy
शायद यह कर सकता है; मैंने कुछ समय पहले बैच फाइलों में यूनिकोड के साथ कुछ प्रगति की है, लेकिन यह किसी भी तरह से सुंदर नहीं है और यह सबसे अच्छा था। – Joey