Простой пример:
set path=C:\ONE\TWO\..\
ECHO %path%
Будет отображаться C:\ONE\TWO\..\..\
. Как отобразить краткий путь C:\ONE\
.
Попробуй это:
set _path=C:\ONE\TWO\..\
::ECHO %_path%
pushd %_path%
echo %cd%
popd
И не перезаписывайте переменную %PATH%
. Это слишком важно, чтобы к нему так прикасались. Здесь я использовал _path
.
Еще один вариант - использовать команду FOR.
set _path=C:\ONE\TWO\..\
for %%G in ("%_path%") do echo %%~dpG
С
set _path=C:\ONE\TWO\THREE\..
возвращаетC:\ONE\
. Использование переменной%%~fG
вместо%%~dpG
возвращаетC:\ONE\TWO
. Вроде модификаторf
более надежен. Добавлен пробел за результатом, так как сайт закрывает галочку обратной косой чертой.