PowerShell довольно распространен в наши дни, поэтому я часто использую его как быстрый способ вызова C #, поскольку в нем есть функции практически для всего:
@echo off
set pathToResolve=%~dp0\..\SomeFile.txt
for /f "delims=" %%a in ('powershell -Command "[System.IO.Path]::GetFullPath( '%projectDirMc%' )"') do @set resolvedPath=%%a
echo Resolved path: %resolvedPath%
Это немного медленно, но полученную функциональность сложно превзойти, если только не прибегнуть к реальному языку сценариев.