Исходя из вашего заявленного «каталога, откуда мой пакетный скрипт», должно хватить следующего: (последняя строка добавлена в демонстрационных целях, пожалуйста, измените ее при необходимости) :
@Set "x=%~dp0"&SetLocal EnableDelayedExpansion
@Set "i=0"&Set "x!i!=%x:\="&Set /A i+=1&Set "x!i!=%"
@Set /A i-=1,y=i-1
@If %i% Lss 1 (Set "z=%x0%\")Else (If %i% Equ 1 (Set "z=%x0%\%x1%"
)Else Set "z=!x%y%!\!x%i%!")
@EndLocal&Set "y=%z%"
@Echo %x% becomes %y%&Pause
Я сделал так, чтобы, если каталог скриптов не был достаточно глубоким, полный путь по-прежнему выводился.
Если вы хотите использовать текущий каталог вместо местоположения скриптов, измените %~dp0
в строке 1
до %__CD__%
или %CD%\
при необходимости.