Частка% ~ dp0 вже згадувалася, але насправді в ній є більше: персонаж (и) після ~ визначають інформацію, що вилучається.
Жодна літера не призводить до повернення імені файлу патчу
d - повертає букву диска
p - повертає шлях
s - повертає короткий шлях
x - повертає розширення файлу.
Отже, якщо ви виконаєте скрипт test.bat нижче від c: \ Temp \ long dir name \ папка,
@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
Вихід є (batchfile запускається з myBatch.bat)
myBatch.bat
:test
:test
myBatch