subseries Naïve tienen el problema de que hay que ajustarlos cada vez que cambien sus caminos y no es una solución genérica a la problema.
El siguiente archivo por lotes da una prueba de concepto cómo se puede hacer la parte de truncamiento de la trayectoria:
@echo off
set foo=C:\Temp\Test
call :strip
echo %foo%
goto :eof
:strip
if not "%foo:~-1%"=="\" (
set foo=%foo:~0,-1%
goto :strip
)
goto :eof
es difícil codificado a una sola variable, sino que se fija fácilmente si es necesario.
La parte central aquí es la subrutina strip
que realiza un bucle y corta el último carácter de la cadena hasta que se encuentra una barra invertida. Esto elimina efectivamente la última parte de la ruta.