使用批处理脚本获取文件的绝对路径

时间:2019-06-17 16:11:13

标签: windows batch-file

我有一个Java应用程序,该应用程序生成使用批处理脚本存储在 <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-12.1.2.0" newVersion="12.2.1.0" /> </dependentAssembly>文件中的输出。现在,我想将此myfile.txt文件的绝对路径作为命令行参数传递给另一个Java应用程序。

类似这样:

myfile.txt

现在我发现this answer指出了java -jar "path/to/jar/MyJar.jar" > myfile.txt <Something to get and store absolute path of myfile.txt> java -jar "path/to/jar/MyOtherJar.jar" <absolute path of myfile.txt> 的用法,但我不知道如何应用它。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用%~dpnx1或仅使用%~f1语法要求文件名位于参数中。
dpnx =(D)riv(P)ath(N)ame e(X)tension = Full(F)ilename

可以通过CALL :func <argument>FOR完成。

call :getAbsolutePath resultVar "myFile.txt"
echo %resultVar%
exit /b


:getAbsolutePath <returnVar> <filename>
set "%1=%~f2"
exit /b

或通过FOR

FOR /F "delims=" %%X in ("myFile.txt") DO set "absPath=%%~fX"