在批处理脚本中获取文件的绝对path

我正在使用批处理脚本来调用Java应用程序。 Java应用程序将绝对文件path作为参数。
我需要使用文件的相对或绝对path作为参数来调用批处理脚本,然后传递文件的绝对path以便执行java。 例:

从位置c:/folderA运行脚本myscript

 myscript folderB/file.txt myscript c:/folderA/folderB/file.txt 

应该能够在两种情况下获得完整的绝对pathc:/folderA/folderB/file.txt 。 我怎么做?
只要尽可能具体:我只需要BATCH SCRIPT代码来将相对或绝对path传递给ti作为参数后检索绝对文件pathstring。 当我用它调用Java应用程序时,不是实际的部分。

你可以使用%~dpnx1 。 扩展到第一个参数的驱动,路径,名称和扩展。 但是,不要忘了在将它传递给另一个命令时引用该名称。

“for … do”语句中的绝对路径是%~f{variable_letter}

过程调用参数%1绝对路径是%~f1 %~dpnx1%~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