Borman44,
Georgio,
Iska, Не понимаю, почему нельзя
Echo %~dps0
Если пишем call %0 без путей, то батник, имхо, запускается из текущей папки. Исключение, если имя батника должно быть обнаружено по пути по умолчанию из переменной окружения.
Iska,
А если всё таки с вызовом процедуры, если в батнике меняется текущая директория, то можно так (как вариант, у Georgio лучше):
Код:

@Echo Off
cls
cd /d "E:\Основная папка\"
Call :ShotPath "%CD%" "SPath"
Echo %SPath%
pause
GoTo :Eof
:ShotPath
Set %~2=%~dpnxs1