2014-06-11 5 views
23

मैंने हाल ही में विंडोज सीएमडी में एक ही उद्धरण के साथ एक कमांड चलाया और पाया कि यह मेरी अपेक्षा के अनुसार व्यवहार नहीं करता था।विंडोज बैच फ़ाइलों में सिंगल कोट क्या करता है?

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

तो विंडोज बैच फ़ाइलों में सिंगल कोट्स क्या करते हैं? क्या वे किसी भी प्रकार की उद्धरण कार्यक्षमता बिल्कुल करते हैं?

+1

टाइप: 'cmd /?' वहां डबल कोट्स के उपयोग का पर्याप्त विवरण है। ध्यान दें कि एस्ट्रोफ़े (या "सिंगल कोट") बैच फ़ाइलों में विशेष उपयोग नहीं करता है ('f/f' कमांड को छोड़कर)। – Aacini

उत्तर

28

एकल उद्धरण चिह्न को छोड़कर cmd.exe आदेश प्रोसेसर के द्वारा सब पर उपयोग नहीं कर रहे एक के लिए/एफ बयान में चलने आदेश संलग्न करने की:

for /f %%A in ('someCommand') do ... 

या/एफ द्वारा कार्रवाई करने के लिए एक स्ट्रिंग निर्दिष्ट करने के लिए यदि USEBACKQ विकल्प प्रयोग किया जाता है:

for /f "usebackq" %%A in ('some string') do ... 

अन्य सभी cmd.exe द्वारा नियंत्रित उद्धृत दोहरे उद्धरण चिह्नों के साथ किया जाता है। हालांकि, विंडोज़ यूटिलिटीज (बाहरी कमांड) जैसे डब्लूएमआईसी हैं जो अपने उद्धरण उद्देश्यों के लिए सिंगल कोट्स का उपयोग करते हैं। लेकिन कोई मानक नहीं है - प्रत्येक उपयोगिता एकल कोट्स की अपनी व्याख्या करने के लिए स्वतंत्र है।

cmd.exe बनाम विभिन्न कमांड लाइन उपयोगिताओं द्वारा उपयोग किए जाने वाले असंगत भागने और उद्धरण नियम अक्सर किसी भी स्थिति के लिए आवश्यक सही वाक्यविन्यास को खोजने में चुनौती देते हैं।

cmd.exe के साथ डबल कोट्स " का उपयोग करने के बारे में कुछ महत्वपूर्ण नोट यहां दिए गए हैं।

  • डबल कोट्स एक साधारण राज्य मशीन हैं। पहले " पर उद्धरण बदल जाता है, अगला इसे बंद कर देता है।

  • सभी विशेष वर्ण हमेशा % और <newLine> पात्रों के लिए को छोड़कर, जब उद्धृत शाब्दिक मूल्यों के रूप में इलाज कर रहे हैं , और ! चरित्र अगर देरी विस्तार से सक्षम है और ^ चरित्र अगर देरी विस्तार सक्षम है और ! भी प्रतीत होता है लाइन के भीतर कहीं।

  • अगर उद्धरण बंद है, तो आप इसे " से ^" से उद्धृत करने से रोकने के लिए बच सकते हैं। लेकिन एक बार उद्धरण जारी है, आप बंद " से बच नहीं सकते हैं। अगले " हमेशा उद्धरण बंद कर देंगे।

संबंधित मुद्दे