कुछ गोटेक के लिए बाहर देखने के लिए:
यदि आप डबल-क्लिक%0
करेंगे तो बैच फ़ाइल को उद्धरणों से घेर लिया जाएगा। उदाहरण के लिए, यदि आप इस फ़ाइल को इस रूप में सहेजते हैं c:\test.bat
:
@echo %0
@pause
डबल-क्लिक करने से आउटपुट के साथ एक नया कमांड प्रॉम्प्ट खुलेगा:
"C:\test.bat"
लेकिन अगर आप पहली बार कमांड प्रॉम्प्ट खोलते हैं और इसे सीधे उस कमांड प्रॉम्प्ट से कॉल करते हैं, %0
तो आप जो भी टाइप करेंगे उसे संदर्भित करेंगे । यदि आप लिखते हैं test.bat
Enter, तो आपके %0
पास कोई उद्धरण नहीं होने के कारण कोई उद्धरण नहीं होगा:
c:\>test.bat
test.bat
यदि आप टाइप करते हैं test
Enter, तो आउटपुट का %0
कोई एक्सटेंशन नहीं होगा, क्योंकि आपने कोई एक्सटेंशन टाइप नहीं किया है:
c:\>test
test
उसी के लिए tEsT
Enter:
c:\>tEsT
tEsT
यदि आप टाइप करते हैं "test"
Enter, तो आउटपुट में %0
उद्धरण होंगे (चूंकि आपने उन्हें टाइप किया था) लेकिन कोई एक्सटेंशन नहीं:
c:\>"test"
"test"
अंत में, यदि आप टाइप करते हैं "C:\test.bat"
, तो आउटपुट बिल्कुल वैसा ही होगा जैसा आपने डबल क्लिक किया है:
c:\>"C:\test.bat"
"C:\test.bat"
ध्यान दें कि ये सभी संभावित मूल्य नहीं हो %0
सकते हैं क्योंकि आप स्क्रिप्ट को अन्य फ़ोल्डरों से कॉल कर सकते हैं:
c:\some_folder>/../teST.bAt
/../teST.bAt
ऊपर दिखाए गए सभी उदाहरण भी प्रभावित करेंगे %~0
, क्योंकि का आउटपुट %~0
केवल %0
माइनस कोट्स (यदि कोई हो) का आउटपुट है ।
echo %~dp0
केवल एक बैच फ़ाइल में कमांड लाइन पर काम नहीं करेगा। ओह!