转换相对于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
。