मुझे एक ही बैच फ़ाइल में एकाधिक फ़ाइलों की प्रतिलिपि बनाने की आवश्यकता है। फ़ाइलों में यूनिकोड नाम हैं जो विभिन्न कोडपेज पर मैप करते हैं।विंडोज बैच: यूनिकोड पैरामीटर (रोबो) कॉपी कमांड
उदाहरण:
set ArabicFile=ڊڌڵڲڛشس
set CyrillicFile=щЖЛдЉи
set GermanFile=Bücher
copy %ArabicFile% SomePlaceElse
copy %CyrillicFile% SomePlaceElse
copy %GermanFile% SomePlaceElse
समस्या: बैच फ़ाइलें यूनिकोड नहीं हो सकता।
प्रश्न: मैं बैच फ़ाइल में यूनिकोड फ़ाइल नाम कैसे लिख सकता हूं ताकि कॉपी कमांड उन्हें पहचान सके?
नोट्स:
मुझे परवाह नहीं है कैसे फ़ाइल नाम प्रदर्शित होते हैं।
असल में बैच फ़ाइल इन फ़ाइलों की प्रतिलिपि बनाने से कहीं अधिक है, मैंने समस्या को स्पष्ट करने के लिए विवरण को सरल बना दिया है।
सही बैच फ़ाइल:
Arnout के जवाब के साथ इस प्रकार मैं अपने बैच फ़ाइल संशोधित। यह फ़ॉन्ट परिवर्तन की आवश्यकता के बिना सही ढंग से काम करता है (जो गन्दा होगा, जैसा कि अर्नाउट ने टिप्पणी की थी)।
@echo off
chcp 65001
set ArabicFolder=ڊڌڵڲڛشس
set CyrillicFolder=щЖЛдЉи
set GermanFolder=Bücher
robocopy /e d:\temp\test\%ArabicFolder% d:\temp\test2\%ArabicFolder% /log:copy.log
robocopy /e d:\temp\test\%CyrillicFolder% d:\temp\test2\%CyrillicFolder% /log+:copy.log
robocopy /e d:\temp\test\%GermanFolder% d:\temp\test2\%GermanFolder% /log+:copy.log
फ़ॉन्ट परिवर्तन * आवश्यक हो सकता है यदि आप कमांड आउटपुट का उपयोग करना चाहते हैं जिसमें यूनिकोड हो सकता है;) – Joey
उम्म, हाँ, यही मेरा मतलब है "बशर्ते आप कंसोल में गैर-ASCII आउटपुट नहीं लिख रहे हैं" ... – Arnout
कूल, यह काम करता है ;-) केवल गॉचा: मैं बैच फ़ाइल के भीतर से फ़ॉन्ट कैसे सेट करूं? बैच फ़ाइल एकाधिक कंप्यूटरों पर चलाना है और मैं अपनी स्क्रिप्ट चलाने से पहले उन्हें पुन: कॉन्फ़िगर नहीं कर सकता। और फ़ॉन्ट परिवर्तन आवश्यक है - अगर मैं फ़ॉन्ट नहीं बदलता, तो सेट कमांड विफल हो जाते हैं। –