В общем вы все делаете правильно, кроме нескольких нюансов.
Вот пример:
@echo off
SetLocal EnableDelayedExpansion
set "begindir=G:\test\batch"
for /r "%begindir%" %%i in (*) do (
Set "namePath=%%i"
set "namePath=!namePath:%begindir%=!"
echo.!namePath!
)