को छोड़कर यह प्रश्न another question about selectively appending lines from one file to another पर जारी है।विंडोज कमांड लाइन/खोल - यूटीएफ -8 बीओएम
मैं जिस रेगेक्स का उपयोग कर रहा हूं वह रखने/हटाने के लिए लाइनों से मेल खाने के लिए ठीक है। समस्या यह है कि फ़ाइल को अन्य फ़ाइलों के समूह से बनाया गया था, और कभी-कभी जिस लाइन को मैं यूटीएफ -8 एन्कोडेड फ़ाइल की पहली पंक्ति के रूप में शुरू करना चाहता हूं। इसका मतलब है कि findstr
आदेश रिटर्न कुछ की तरह:
LineToKeep that started out as the first line in its file
LineToKeep another
LineToKeep more lines
LineToKeep that started out as the first line in its file
LineToKeep more
यह गारंटी है कि बीओएम बाइट्स को छोड़कर, लाइन हमेशा "LineToKeep" के साथ शुरू हो जाएगा। मैं उन तीन यूटीएफ -8 बीओएम बाइट्स से कैसे छुटकारा पा सकता हूं, क्योंकि ये विंडोज़ खोल कमांड उन्हें सही तरीके से संभाल नहीं सकते हैं?
मैं उन जगहों को हटाने के लिए एक तरीका की उम्मीद कर रहा हूं, या शायद पिछले प्रश्न से findstr
कमांड में एक संशोधन की उम्मीद कर रहा हूं।
चूंकि मुझे पता है कि प्रत्येक पंक्ति "लाइन टॉकीप" या "∩╗┐LineToKeep" से शुरू होनी चाहिए, मुझे लगता है कि प्रत्येक पंक्ति के लिए if (Line[3:10] == "LineToKeep") { Line = Line[3:]; }
जैसी कुछ गणना करने का एक तरीका है।
.. और यही कारण है कि पर्ल को प्रत्येक ओएस के साथ भेजना चाहिए ;-) –
क्या आपने वेनिला कमांड दुभाषिया के बजाय पावरहेल का उपयोग करने के बारे में सोचा है? ऐसा कुछ करना तुच्छ होगा। विंडोज शैल यूनिकोड को ज्यादा पसंद नहीं करता है। – kprobst
मैं विजुअल स्टूडियो के प्री/पोस्ट-बिल्ड इवेंट्स में स्क्रिप्ट चलाने जा रहा हूं। Http://stackoverflow.com/questions/6500320/post-build-event-execute-powershell के अनुसार, PowerShell स्क्रिप्ट चलाने का विकल्प हो सकता है। हालांकि यह बाहरी समाधान की तरह महसूस करेगा। – Kache