bat文件:获取父路径名

bma*_*ies 8 cmd batch-file pathname

以下主要是有效的.'Mostly',因为当上下文XML文件试图通过相对路径名包含另一个时,使用SOMETHING ..\tasks\pathname会混淆Spring.因此,我似乎需要一种方法,在BAT文件中,将变量设置为路径名的父目录.

set ROOT=%~dp0
java -Xmx1g -jar %ROOT%\..\lib\ajar.jar %ROOT%\..\tasks\fas-model.xml tasks
Run Code Online (Sandbox Code Playgroud)

Fra*_*ack 17

要解析相对路径名,可以使用子例程调用.在批处理文件的末尾放置以下行:

GOTO :EOF

:RESOLVE
SET %2=%~f1 
GOTO :EOF
Run Code Online (Sandbox Code Playgroud)

这是一个子例程,它将第一个参数解析为完整路径(%~f1)并将结果存储到第二个参数指定的(全局)变量

您可以像这样使用例程:

CALL :RESOLVE "%ROOT%\.." PARENT_ROOT
Run Code Online (Sandbox Code Playgroud)

调用后,您可以使用%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
Run Code Online (Sandbox Code Playgroud)


dbe*_*ham 7

这是一个班轮

for %%A in ("%~dp0\..") do set "root_parent=%%~fA"
Run Code Online (Sandbox Code Playgroud)