4

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

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

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

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

4

2 回答 2

9

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

于 2013-09-05T17:17:20.183 回答
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
于 2017-01-08T21:33:09.867 回答