我正在使用批处理脚本来调用java应用程序。 Java应用程序将绝对文件路径作为参数 我需要使用文件的相对或绝对路径作为参数调用我的批处理脚本,然后传递文件的绝对路径以执行java。例如:
从位置myscript
c:/folderA
myscript folderB/file.txt
myscript c:/folderA/folderB/file.txt
在这两种情况下,应该能够获得完整的绝对路径c:/folderA/folderB/file.txt
。
我该怎么做?
只是为了尽可能具体:我只需要BATCH SCRIPT代码来传递ti的相对或绝对路径作为参数后检索绝对文件路径字符串。当我用它调用java应用程序时,不是实际的部分。
答案 0 :(得分:6)
您可以使用%~dpnx1
。它扩展到第一个参数的驱动器,路径,名称和扩展名。但是,在将名称传递给另一个命令时,不要忘记引用该名称。
答案 1 :(得分:1)
“for ... do”语句中的绝对路径为%~f{variable_letter}
。
参数%1
的过程调用中的绝对路径为%~f1
或%~dpnx1
但对于环境变量没有简单的解决方案。
解决方法是使用set语句创建过程,例如(对于Windows XP和更高版本):
@echo off
cd C:\Program Files\Microsoft Games
call :getabsolute "Purble Place\PurblePlace.exe"
echo %absolute%
call :getabsolute "Purble Place"
echo %absolute%
pause
goto :eof
:getabsolute
set absolute=%~f1
goto :eof