batch-file
विशेष पात्रों को बचाना
खोज…
परिचय
सभी cmd.exe और DOS संस्करण में, कुछ वर्ण विशिष्ट उपयोग के लिए आरक्षित हैं (जैसे कमांड पुनर्निर्देशन)। यह विषय बिना मुद्दों के विशेष वर्णों का उपयोग करने के बारे में बात करेगा।
कैरेट (^) का उपयोग करके बच
अधिकांश विशेष वर्ण कैरट ( ^ ) का उपयोग करके बच सकते हैं। निम्नलिखित उदाहरण पर एक नज़र डालें।
echo > Hi
echo ^> Hi
यह पहला कमांड आउटपुट नहीं करेगा > Hi क्योंकि > एक विशेष चरित्र है, जिसका अर्थ है किसी फ़ाइल में रीडायरेक्ट आउटपुट। इस स्थिति में, फ़ाइल का नाम "Hi" है
हालांकि दूसरे आदेश में, > Hi किसी भी मुद्दे के बिना outputted किया जाएगा क्योंकि कैरट ( ^ ) बताता है > "फाइल करने के लिए पुन: निर्देशन उत्पादन" कमांड के रूप में कार्य को रोकने के लिए, अब > सिर्फ एक सामान्य चरित्र है।
यहां विशेष वर्णों की एक सूची दी गई है, जिसे ले जाया जा सकता है (रोब वैन डेर वोडे के पृष्ठ से लिया गया और संपादित किया गया है)
| चरित्र | परिणाम बच गया | टिप्पणियों |
|---|---|---|
| ^ | ^^ | |
| और | ^ & | |
| < | ^ < | |
| > | ^> | |
| | | ^ | | |
| \ | ^ \ | |
| ! | ^^! | केवल तभी आवश्यक है जब विलंबित विस्तार चालू हो |
देखभाल से बचना
देखभाल को अन्य देखभाल से बचने के लिए ढेर किया जा सकता है, निम्नलिखित उदाहरण पर विचार करें।
| इनपुट | उत्पादन |
|---|---|
| ^ & | और |
| ^ ^ ^ और | ^ & |
| ^ ^ ^ ^ ^ | ^^ & |
नोट: बोल्ड रूप में देखभाल से बच रहे हैं।
सुरक्षा का मसला
यहाँ विषय से थोड़ा हटकर, लेकिन यह बहुत महत्वपूर्ण है! फ़ाइल के अंत में एक अवांछित कैरेट से बचने के कारण मेमोरी रिसाव हो सकता है!
any-invalid-command-you-like-here ^
यह कमांड सभी मेमोरी को लीक करेगा, सिस्टम को पूरी तरह से अनुपयोगी बना देगा ! अधिक जानकारी के लिए यहाँ देखें।
खोज और विशेष वर्ण
find और find , कुछ विशेष वर्ण हैं जिन्हें इस पर findstr सावधानी की आवश्यकता है।
FIND
केवल एक ही चरित्र है जिसे भागने की ज़रूरत है - " बोली। इसे बचने के लिए, बस इसके बगल में एक और उद्धरण जोड़ें। तो " बन जाता है "" । बहुत साधारण।
findstr
Findstr के लिए बहुत सारे पात्र आते हैं, इसलिए कृपया बहुत सतर्क रहें। \ का उपयोग करके, हम विशेष वर्णों से बच सकते हैं। यहाँ भागने के लिए विशेष पात्रों की एक सूची है
| चरित्र | परिणाम बच गया |
|---|---|
| \ | \\ |
| [ | \ [ |
| ] | \] |
| " | \ " |
| । | \। |
| * | \ * |
| ? | \? |
के लिए / एफ विशेष वर्ण
के लिए / एफ
FOR /F स्टेटमेंट में, कुछ पात्रों को भागने की जरूरत है, यहां एक सूची (रॉब वैन डेर वूडे के पृष्ठ से ली गई और संपादित की गई है)
| चरित्र | परिणाम बच गया | टिप्पणियों |
|---|---|---|
| ' | ^ ' | केवल उपयोग के FOR /F के कोष्ठक की आवश्यकता होती है, जब तक कि usebackq निर्दिष्ट न हो। |
| ` | ^ ` | में केवल जरूरत FOR /F के कोष्ठक, जब usebackq निर्दिष्ट किया जाता है |
| , | ^, | ┒ |
| ; | ^; | ┃ |
| = | ^ = | FOR /F के ब्रैकेट में बच जाना चाहिए, भले ही वह डबल-कोटेड हो |
| ( | ^ ( | ┃ |
| ) | ^) | ┙ |
अतिरिक्त विशेष वर्ण
यहाँ अन्य विशेष चरित्रों की सूची दी गई है, जिनकी आवश्यकता है (एस) / भागने की आवश्यकता हो सकती है, लेकिन ऊपर उल्लेख नहीं किया गया है।
| चरित्र | परिणाम बच गया | टिप्पणियों |
|---|---|---|
| % | %% | |
| [वामो] | ^ [वामो] | यह चाल मार्क स्टैंग द्वारा alt.msdos.batch समाचार समूह में alt.msdos.batch । |
पाइप लाइन के माध्यम से भागने
जब एक पाइप के साथ एक अभिव्यक्ति होती है, तो cmd पाइप के दोनों किनारों पर दो धागे शुरू करता है और अभिव्यक्ति को दो बार (पाइप के प्रत्येक पक्ष के लिए) पार्स किया जाता है, इसलिए देखभाल को दोगुना करने की आवश्यकता होती है।
बाईं तरफ:
echo ^^^&|more
दाहिने तरफ़:
break|echo ^^^&