% ~ Dp0 का टुकड़ा पहले ही उल्लेख किया गया था, लेकिन इसमें वास्तव में अधिक है: चरित्र (s) के बाद ~ जो जानकारी निकाली गई है उसे परिभाषित करें।
पैच फ़ाइल नाम
d की वापसी में कोई अक्षर परिणाम नहीं - ड्राइव अक्षर
p लौटाता है - पथ
s लौटाता है - लघु पथ
x लौटाता है - फ़ाइल एक्सटेंशन लौटाता है
इसलिए यदि आप c: \ Temp से नीचे स्क्रिप्ट test.bat निष्पादित करते हैं। \ long dir name \ folder,
@echo off
echo %0
echo %~d0
echo %~p0
echo %~dp0
echo %~x0
echo %~s0
echo %~sp0
आपको निम्न आउटपुट मिलते हैं
test
c:
\Temp\long dir name\
c:\Temp\long dir name\
.bat
c:\Temp\LONGDI~1\test.bat
\Temp\LONGDI~1\
और अगर आपकी स्क्रिप्ट में कोई पैरामीटर पास किया गया है
टेस्ट c: \ temp \ mysrc \ test.cpp के
तो उसी हेरफेर को% 1 चर के साथ किया जा सकता है।
लेकिन% 0 के विस्तार का परिणाम स्थान पर निर्भर करता है!
बैच के "शीर्ष स्तर" पर यह वर्तमान बैच फ़ाइल नाम तक फैलता है।
एक फ़ंक्शन (कॉल) में, यह फ़ंक्शन नाम तक फैलता है।
@echo off
echo %0
call :test
goto :eof
:test
echo %0
echo %~0
echo %~n0
आउटपुट है (बैचबाइल myBatch.bat के साथ शुरू किया गया है)
myBatch.bat
:test
:test
myBatch