bat файл: получить родительский путь

Следующее в основном работает. «В основном», потому что использование SOMETHING .. \ tasks \ pathname сбивает с толку Spring, когда XML-файл контекста пытается включить другой по относительному пути. Итак, мне кажется, что в BAT-файле нужно установить переменную в родительский каталог с именем пути.

set ROOT=%~dp0
java -Xmx1g -jar %ROOT%\..\lib\ajar.jar %ROOT%\..\tasks\fas-model.xml tasks
8
задан bmargulies 31 January 2010 в 15:02
поделиться

1 ответ

Чтобы разрешить относительное имя пути, которое вы можете использовать подходящий звонок. В конце вашего пакетного файла поместите следующие строки:

GOTO :EOF

:RESOLVE
SET %2=%~f1 
GOTO :EOF

Это подпрограмма, которая разрешает свой первый параметр на полный путь (% ~ F1 ) и хранит результат к (Global) переменной Названный 2-го параметра

, вы можете использовать подобную рутину:

CALL :RESOLVE "%ROOT%\.." PARENT_ROOT

После вызова вы можете использовать переменную % Parent_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
17
ответ дан 5 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: