(पहले, मैं बैच के लिए इस उपयोगी संदर्भ साइट की सिफारिश करना चाहूंगा:
http://ss64.com/nt/ )
फिर बस एक और उपयोगी स्पष्टीकरण: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
द% ~ dp0 चर
Windows बैच फ़ाइल में संदर्भित% ~ dp0 (यह एक शून्य) चर है जो उस बैच फ़ाइल के d rive अक्षर और p प्लेयर तक विस्तृत होगा ।
चर% 0-% 9 बैच फ़ाइल के कमांड लाइन मापदंडों का संदर्भ देते हैं। % 1-% 9 बैच फ़ाइल नाम के बाद कमांड लाइन तर्कों को संदर्भित करता है। % 0 बैच फ़ाइल को संदर्भित करता है।
यदि आप किसी टिल्ड वर्ण (~) के साथ प्रतिशत वर्ण (%) का अनुसरण करते हैं, तो आप चर के विस्तार के तरीके को बदलने के लिए पैरामीटर संख्या से पहले एक संशोधक (ओं) को सम्मिलित कर सकते हैं। डी संशोधक ड्राइव अक्षर में फैलता है और पी संशोधक पैरामीटर के पथ तक फैलता है।
उदाहरण: मान लीजिए कि आपके पास C पर एक निर्देशिका है: जिसे bat_files कहा जाता है, और उस निर्देशिका में example.bat नामक एक फ़ाइल है। इस स्थिति में,% ~ dp0 (d और p संशोधक का संयोजन) C: \ bat_files तक विस्तारित होगा।
की जाँच करें इस Microsoft लेख पूरी जानकारी के लिए।
इसके अलावा, इस फोरम थ्रेड को देखें ।
और यहाँ से अधिक स्पष्ट संदर्भ :
%CmdCmdLine%
पूरी कमांड लाइन वापस सीएमडी.ईएक्सई को भेज दी जाएगी
%*
पहली कमांड लाइन तर्क पर शुरू होने वाली कमांड लाइन के शेष भाग को वापस कर देगा (विंडोज एनटी 4 में,% * में सभी प्रमुख स्थान भी शामिल हैं)
%~dn
% n का ड्राइव अक्षर वापस करेगा (n 0 से 9 तक हो सकता है) यदि% n एक मान्य पथ या फ़ाइल नाम है (कोई UNS नहीं है)
%~pn
% n की निर्देशिका वापस कर देगा यदि% n एक मान्य पथ या फ़ाइल नाम है (कोई UNC नहीं)
%~nn
यदि% n एक मान्य फ़ाइल नाम है तो केवल% n की फ़ाइल नाम लौटाएगा
%~xn
यदि% n एक मान्य फ़ाइल नाम है, तो केवल% n में फ़ाइल एक्सटेंशन वापस करेगा
%~fn
यदि% n एक मान्य फ़ाइल नाम या निर्देशिका है, तो% n का पूरी तरह से योग्य पथ वापस आ जाएगा
एडीडी 1
बस रहस्यमय ~
टिल्ड ऑपरेटर के लिए कुछ अच्छा संदर्भ मिला ।
%~
स्ट्रिंग कहा जाता है टिल्ड प्रतिशत ऑपरेटर। आप इस तरह की स्थितियों में पा सकते हैं: %~0
।
:~
स्ट्रिंग कहा जाता है टिल्ड पेट के ऑपरेटर। आप इसे पसंद कर सकते हैं %SOME_VAR:~0,-1%
।
ADD 2 - 1:12 PM 7/6/2018
%1-%9
कमांड लाइन आर्ग्स का संदर्भ लें। वे कर रहे हैं नहीं मान्य पथ मूल्यों, %~dp1
- %~dp9
सभी के रूप में एक ही मूल्य के लिए विस्तार होगा %~dp0
। लेकिन अगर वे कर रहे हैं मान्य पथ मूल्यों, वे करने के लिए विस्तार होगा अपने स्वयं के चालक / पथ मूल्य।
उदाहरण के लिए: (बैच.बैट)
@echo off
@echo ~dp0= %~dp0
@echo ~dp1= %~dp1
@echo ~dp2= %~dp2
@echo on
1 चलाएं:
D:\Workbench>batch arg1 arg2
~dp0= D:\Workbench\
~dp1= D:\Workbench\
~dp2= D:\Workbench\
रन 2:
D:\Workbench>batch c:\123\a.exe e:\abc\b.exe
~dp0= D:\Workbench\
~dp1= c:\123\
~dp2= e:\abc\