Чтобы разрешить относительный путь, вы можете использовать подпрограмму вызова.
В конце вашего командного файла поместите следующие строки:
GOTO :EOF
:RESOLVE
SET %2=%~f1
GOTO :EOF
Это подпрограмма, которая разрешает свой первый параметр в полный путь (%~f1
) и сохраняет результат в (глобальной) переменной, названной вторым параметром
Вы можете использовать процедуру следующим образом:
CALL :RESOLVE "%ROOT%\.." PARENT_ROOT
После вызова вы можете использовать переменную %PARENT_ROOT%
, которая содержит родительский путь, содержащийся в переменной %ROOT%
.
Ваш полный пакетный файл должен выглядеть следующим образом:
SET ROOT=%~dp0
CALL :RESOLVE "%ROOT%\.." PARENT_ROOT
java -Xmx1g -jar "%PARENT_ROOT%\lib\ajar.jar" "%PARENT_ROOT%\tasks\fas-model.xml" tasks
GOTO :EOF
:RESOLVE
SET %2=%~f1
GOTO :EOF