unicode - विंडोज कमांड लाइन में यूनिकोड वर्णों का उपयोग कैसे करें?




command-line input (11)

हमारे पास टीम फाउंडेशन सर्वर (टीएफएस) में एक परियोजना है जिसमें इसमें एक गैर-अंग्रेजी चरित्र (š) है। कुछ बिल्ड-संबंधित चीजों को स्क्रिप्ट करने का प्रयास करते समय हमने एक समस्या पर ठोकर खाई है - हम कमांड लाइन टूल्स को š पत्र पास नहीं कर सकते हैं। कमांड प्रॉम्प्ट या यह और क्या गड़बड़ नहीं करता है, और tf.exe उपयोगिता निर्दिष्ट प्रोजेक्ट नहीं ढूंढ सकती है।

मैंने .bat फ़ाइल (एएनएसआई, यूटीएफ -8 के साथ और बिना BOM ) के लिए विभिन्न प्रारूपों की कोशिश की है और साथ ही इसे जावास्क्रिप्ट में स्क्रिप्ट कर रहा है (जो मूल रूप से यूनिकोड है) - लेकिन कोई भाग्य नहीं है। मैं एक प्रोग्राम कैसे निष्पादित कर सकता हूं और इसे यूनिकोड कमांड लाइन पास कर सकता हूं?


इसी तरह की समस्या के लिए, (मेरी समस्या एक कमांड प्रॉम्प्ट पर MySQL से UTF-8 वर्ण दिखाना था),

मैंने इसे इस तरह हल किया:

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

  2. मैंने कोडपेज को विंडोज-1253 में बदल दिया। आप इसे "chcp 1253" द्वारा कमांड प्रॉम्प्ट पर करते हैं। यह मेरे मामले के लिए काम करता था जहां मैं यूटीएफ -8 देखना चाहता था।


एक वास्तव में सरल विकल्प विंडोज बैश खोल को स्थापित करना है जैसे कि MinGW और इसका उपयोग करें:

एक सीखने की वक्र का एक छोटा सा हिस्सा है क्योंकि आपको यूनिक्स कमांड लाइन कार्यक्षमता का उपयोग करने की आवश्यकता होगी, लेकिन आप इसकी शक्ति से प्यार करेंगे और आप कंसोल चरित्र सेट को यूटीएफ -8 पर सेट कर सकते हैं।

बेशक आप grep, find, less, आदि जैसे सभी सामान्य * निक्स उपहार भी प्राप्त करते हैं।


कोड पेज को 1252 में बदलना मेरे लिए काम कर रहा है। मेरे लिए समस्या प्रतीक डबल गुड़िया § विंडोज सर्वर 2008 पर डॉस द्वारा दूसरे प्रतीक में परिवर्तित हो रहा है।

मैंने अपने बीसीपी कथन ^ § में सीएचसीपी 1252 और इससे पहले एक टोपी का उपयोग किया है।


गैर-यूनिकोड प्रोग्राम के लिए भाषा की जांच करें। यदि आपको विंडोज कंसोल में रूसी के साथ समस्या है, तो आपको रूसी सेट करना चाहिए:


जब आप डॉस-विंडो में टाइप करते हैं तो कंप्यूटर आपके पथ / फ़ाइल नाम को सही तरीके से प्रदर्शित करता है तो .bat फ़ाइलों के लिए एक त्वरित निर्णय:

  1. कॉन temp.txt कॉपी करें [एंटर दबाएं]
  2. पथ / फ़ाइल नाम टाइप करें [एंटर दबाएं]
  3. Ctrl-Z दबाएं [एंटर दबाएं]

इस तरह आप एक .txt फ़ाइल - temp.txt बनाते हैं। इसे नोटपैड में खोलें, टेक्स्ट कॉपी करें (चिंता न करें यह अपठनीय दिखाई देगा) और इसे अपनी .bat फ़ाइल में पेस्ट करें। डीओएस-विंडो में इस तरह से बनाई गई .bat को निष्पादित करने के लिए एमई (सिरिलिक, बल्गेरियाई) के लिए काम किया।


दरअसल, चाल यह है कि कमांड प्रॉम्प्ट वास्तव में इन गैर-अंग्रेज़ी पात्रों को समझता है, बस उन्हें सही तरीके से प्रदर्शित नहीं कर सकता है।

जब मैं कमांड प्रॉम्प्ट में पथ दर्ज करता हूं जिसमें कुछ गैर-अंग्रेज़ी chracters शामिल है तो इसे "?? ?????? ?????" के रूप में प्रदर्शित किया जाता है। जब आप अपना आदेश सबमिट करते हैं (सीडी "??? ?????? ?????" मेरे मामले में), सबकुछ अपेक्षित के रूप में काम कर रहा है।


मुझे एक ही समस्या थी (मैं चेक गणराज्य से हूं)। मेरे पास विंडोज़ की एक अंग्रेजी स्थापना है, और मुझे साझा ड्राइव पर फ़ाइलों के साथ काम करना है। फ़ाइलों के पथ में चेक-विशिष्ट वर्ण शामिल हैं।

समाधान जो मेरे लिए काम करता है वह है:

बैच फ़ाइल में, वर्णमाला पृष्ठ बदलें

मेरी बैच फ़ाइल:

chcp 1250
copy "O:\VEŘEJNÉ\ŽŽŽŽŽŽ\Ž.xls" c:\temp

बैच फ़ाइल को सीपी 1250 में सहेजा जाना है।

ध्यान दें कि कंसोल वर्णों को सही तरीके से नहीं दिखाएगा, लेकिन यह उन्हें समझ जाएगा ...


मुझे यूनिकोड नामित फ़ाइलों को उनके छोटे (8 डॉट 3) नामों से बैच फ़ाइल में संदर्भित करके एक समान समस्या मिली।

छोटे नाम dir /x कर देखे जा सकते हैं। जाहिर है, यह केवल यूनिकोड फ़ाइल नामों के साथ काम करता है जो पहले से ही ज्ञात हैं।


यह समस्या काफी परेशान है। मेरे पास आमतौर पर मेरे फ़ाइल नाम और फ़ाइल सामग्री में चीनी वर्ण होता है। कृपया ध्यान दें कि मैं विंडोज 10 का उपयोग कर रहा हूं, मेरा समाधान यहां है:

फ़ाइल नाम प्रदर्शित करने के लिए, जैसे कि dir या ls अगर आपने विंडोज 10 पर उबंटू बैश स्थापित किया है

  1. गैर-utf 8 वर्ण का समर्थन करने के लिए क्षेत्र सेट करें।

  2. उसके बाद, कंसोल का फ़ॉन्ट उस लोकेल के फ़ॉन्ट में बदल दिया जाएगा, और यह कंसोल के एन्कोडिंग को भी बदल देगा।

कमांड लाइन उपकरण का उपयोग कर यूटीएफ -8 फ़ाइल की फ़ाइल सामग्री को प्रदर्शित करने के लिए, पिछले चरणों को करने के बाद

  1. पृष्ठ को chcp 65001 द्वारा utf-8 में chcp 65001
  2. यूटएफ -8 का समर्थन करने वाले फ़ॉन्ट में बदलें, जैसे लुसीडा कंसोल
  3. फ़ाइल सामग्री को देखने के लिए type कमांड का उपयोग करें, या cat अगर आपने विंडोज 10 पर उबंटू बैश स्थापित किया है
  4. कृपया ध्यान दें कि, कंसोल के एन्कोडिंग को utf-8 पर सेट करने के बाद, मैं चीनी इनपुट विधि का उपयोग कर cmd में चीनी वर्ण टाइप नहीं कर सकता।

सबसे अजीब समाधान: बस एक कंसोल एमुलेटर का उपयोग करें जैसे कि http://cmder.net/


विंडोज 10 एक्स 64 मशीन पर, मैंने कमांड प्रॉम्प्ट को गैर-अंग्रेज़ी अक्षरों को प्रदर्शित किया:

एक उन्नत कमांड प्रॉम्प्ट खोलें (व्यवस्थापक के रूप में CMD.EXE चलाएं)। कंसोल के लिए ट्रू टाइप फ़ॉन्ट्स उपलब्ध कराने के लिए अपनी रजिस्ट्री पूछें:

    REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"

आप एक आउटपुट देखेंगे जैसे:

    0    REG_SZ    Lucida Console
    00    REG_SZ    Consolas
    936    REG_SZ    *新宋体
    932    REG_SZ    *MS ゴシック

अब हमें एक ट्रू टाइप फ़ॉन्ट जोड़ने की जरूरत है जो आपको कूरियर न्यू की तरह आवश्यक पात्रों का समर्थन करता है। हम स्ट्रिंग नाम में शून्य जोड़कर ऐसा करते हैं, इसलिए इस मामले में अगला "000" होगा:

    REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New"

अब हम यूटीएफ -8 समर्थन लागू करते हैं:

    REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f

"कूरियर न्यू" पर डिफ़ॉल्ट फ़ॉन्ट सेट करें:

    REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f

फ़ॉन्ट आकार 20 पर सेट करें:

    REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f

यदि आप चाहें तो त्वरित संपादन सक्षम करें:

    REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f

chcp 65001 -8 के लिए: chcp 65001

डिफ़ॉल्ट पर वापस: chcp 437





windows-console