Я хотел бы отметить, что использование трюков с подстрокой в переменных, которые содержат пути к файловой системе, небезопасно, слишком много символов, таких как!, ^,%, Которые являются допустимыми именами папок / файлов, и естьни один из способов правильно избежать их всех
FOR / D, похоже, лишает завершающую обратную косую черту, поэтому вот версия, которая использует для:
setlocal enableextensions enabledelayedexpansion&set _CD=%CD%&cd /D "%~dp0"&(FOR /D %%a IN ("!CD!") DO ((cd /D !_CD!)&endlocal&set "BuildDir=%%~a"))
Это требует Win2000 и, вероятно, завершится неудачей, еслипакетный файл по UNC-пути