转换相对于Windows批处理脚本中绝对路径的脚本参数

转换相对于Windows批处理脚本中绝对路径的脚本参数,windows,batch-file,Windows,Batch File,我正在执行这样的脚本: c:\temp\dir1>c:\myprogram\script1.bat .\subdir1 现在,在我的script1.bat中,我想将参数(%1)(在本例中为“\subdir1”)转换为绝对路径,使其为c:\temp\dir1\subdir1。我尝试了各种选择,包括%dp1,但它没有给我想要的路径 来自/?: %~fI - expands %I to a fully qualified path name 因此,这应该是可行的: for /F

我正在执行这样的脚本:

c:\temp\dir1>c:\myprogram\script1.bat .\subdir1

现在,在我的script1.bat中,我想将参数(%1)(在本例中为“\subdir1”)转换为绝对路径,使其为c:\temp\dir1\subdir1。我尝试了各种选择,包括%dp1,但它没有给我想要的路径

来自/?:

%~fI        - expands %I to a fully qualified path name
因此,这应该是可行的:

for /F %%I in ("%1") do echo %%~fI
实际上,对于,您不需要
,它可以简化为:

echo %~f1

仅当
%1
术语是当前目录中的文件夹时,此选项才有效,否则路径将不正确
echo%~f1
单独提供的信息与上面的命令相同(这是1而不是I)@foxidrive它适用于任何相对路径,而不仅仅是子文件夹<例如,代码>。\..\foo\bar.txt
可以工作。尽管如此,还是要感谢您编辑后添加的
echo%~f1