के रूप में दूसरों को पहले से ही कहा है, कमांड लाइन के माध्यम से पारित मापदंडों अंकन के साथ बैच फ़ाइलों में पहुँचा जा सकता है %1
के लिए %9
। दो अन्य टोकन भी हैं जिनका आप उपयोग कर सकते हैं:
%0
है निष्पादन योग्य (बैच फ़ाइल) नाम कमांड लाइन में विनिर्दिष्ट ।
%*
है सभी मापदंडों कमांड लाइन में निर्दिष्ट - यह बहुत उपयोगी है यदि आप किसी अन्य कार्यक्रम के लिए मानकों को अग्रेषित करने के लिए चाहते हैं।
मापदंडों का उपयोग करने के तरीके के अलावा जागरूक करने के लिए बहुत सारी महत्वपूर्ण तकनीकें भी हैं।
जाँच की जा रही है कि क्या एक पैरामीटर पारित किया गया था
यह ऐसे निर्माणों के साथ किया जाता है IF "%~1"==""
, जो सच है अगर और केवल अगर कोई तर्क पारित नहीं किया गया था। टिल्ड चरित्र पर ध्यान दें जो किसी भी आसपास के उद्धरणों को मूल्य से हटा देता है %1
; एक टिल्ड के बिना आपको अप्रत्याशित परिणाम प्राप्त होंगे यदि उस मूल्य में दोहरे उद्धरण शामिल हैं, जिसमें सिंटैक्स त्रुटियों की संभावना भी शामिल है।
9 से अधिक तर्कों को संभालना (या जीवन को आसान बनाना)
यदि आपको 9 से अधिक तर्कों का उपयोग करने की आवश्यकता है, तो आपको कमांड का उपयोग करना होगा SHIFT
। यह आदेश बदलाव एक ही स्थान पर सभी तर्कों के मूल्यों, ताकि %0
के मान लेता है %1
, %1
का मान लेता है %2
, आदि %9
दसवें तर्क के मान कॉल करने से पहले किसी भी चर के माध्यम से (यदि कोई मौजूद है) लेता है, जो उपलब्ध नहीं था SHIFT
(दर्ज SHIFT /?
अधिक विकल्पों के लिए कमांड )।
SHIFT
यह तब भी उपयोगी है जब आप किसी विशिष्ट क्रम में प्रस्तुत किए बिना आवश्यक पैरामीटर को आसानी से संसाधित करना चाहते हैं। उदाहरण के लिए, एक स्क्रिप्ट झंडे -a
और -b
किसी भी क्रम में पहचान सकती है । ऐसे मामलों में कमांड लाइन को पार्स करने का एक अच्छा तरीका है
:parse
IF "%~1"=="" GOTO endparse
IF "%~1"=="-a" REM do something
IF "%~1"=="-b" REM do something else
SHIFT
GOTO parse
:endparse
REM ready for action!
यह योजना आपको पागल के बिना बहुत जटिल कमांड लाइनों को पार्स करने की अनुमति देती है।
बैच मापदंडों का प्रतिस्थापन
फ़ाइल नाम का प्रतिनिधित्व करने वाले मापदंडों के लिए शेल फाइलों के साथ काम करने से संबंधित बहुत सारी कार्यक्षमता प्रदान करता है जो किसी अन्य तरीके से सुलभ नहीं है। इस कार्यक्षमता को उन निर्माणों के साथ एक्सेस किया जाता है जो इसके साथ शुरू होते हैं %~
।
उदाहरण के लिए, फ़ाइल के आकार को तर्क उपयोग के रूप में पारित करने के लिए
ECHO %~z1
उस निर्देशिका का पथ प्राप्त करने के लिए जहां से बैच फ़ाइल लॉन्च की गई थी (बहुत उपयोगी!) आप उपयोग कर सकते हैं
ECHO %~dp0
CALL /?
कमांड प्रॉम्प्ट में टाइप करके आप इन क्षमताओं की पूरी श्रृंखला देख सकते हैं ।