बाबुन / साइगविन पर यूनिक्स प्रारूप में विंडोज पथ (बैकस्लैश के साथ) कैसे परिवर्तित करें


8

मैं विंडोज का उपयोग कर रहा हूं और बाबुन (एक पॉसि एप) पर चलने के लिए शेल स्क्रिप्ट लिख रहा हूं।

मुझे एक पर्यावरण चर, $ USERPROFILE से एक पथ को पढ़ने की आवश्यकता है, और इसे यूनिक्स शैली में बदलें (रिप्लेस \ बाय / सी, \ बाय / सी /) ताकि मैं बाद में स्क्रिप्ट में इसका उपयोग कर सकूं।

समस्या यह है कि जब भी मैं $ USERPROFILE की सामग्री को प्रतिध्वनित करता हूं, तो बैकस्लैश की व्याख्या पात्रों से बचने के रूप में की जाती है और मुझे एक अप्रत्याशित परिणाम मिलता है (अक्षर "यादृच्छिक रूप से \ n, \ f, आदि जैसे विशेष वर्णों में बदल जाते हैं")। इसलिए मैं इसे उदाहरण के लिए sed में नहीं गूँज सकता।

जवाबों:


11

Cygwin cygpathयूनिक्स और विंडोज प्रारूप पथ परिवर्तित करने के लिए बहुत उपयोगी उपयोगिता प्रदान करता है । से Cygwin उपयोगकर्ता गाइड

cygpathकार्यक्रम एक उपयोगिता है कि Cygwin POSIX शैली pathnames और इसके विपरीत करने के लिए Windows देशी फ़ाइल नाम परिवर्तित करता है। इसका उपयोग तब किया जा सकता है जब एक Cygwin प्रोग्राम को एक मूल विंडोज प्रोग्राम के लिए एक फ़ाइल नाम पारित करने की आवश्यकता होती है, या एक देशी विंडोज प्रोग्राम से एक फ़ाइल नाम प्राप्त करने की अपेक्षा करता है। वैकल्पिक रूप से, cygpathकिसी भी प्रारूप में महत्वपूर्ण सिस्टम निर्देशिकाओं के स्थान के बारे में जानकारी का उत्पादन कर सकते हैं।

यह विंडोज या डॉस-शैली प्रारूप पथों से / में परिवर्तित कर सकता है, उदाहरण के लिए विंडोज पथ के यूनिक्स प्रारूप को प्रिंट करने के लिए:

$ cygpath -u "$USERPROFILE"
/cygdrive/c/Users/anthony

देखें Cygwin उपयोगकर्ता गाइड पूर्ण विवरण के लिए और cygpath --helpबुनियादी उपयोग की जानकारी के लिए।

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