我想获取从当前位置向上 2 个目录的文件夹的路径。
我正在做以下事情:
echo %CD%
set NEW_PATH = ..\..\bin\
echo %PATH%
当我运行上面的代码时,我打印了当前目录路径,但 NEW_PATH 不是。它只是说 ECHO_OFF。
从这个链接:批处理文件:相对路径错误,从当前目录向上一级 https://stackoverflow.com/questions/16960880/batch-file-error-in-relative-path-one-level-up-from-the-current-directory我也尝试过
set NEW_PATH = %~dp0..\..\bin\
但仍然是同样的问题。
我怎样才能得到这个目录路径?
对于每个文件夹,..
指向其父文件夹,因此,当前文件夹的上两层是..\..
。现在,要将相对引用转换为绝对完整路径,我们需要获取对指向的文件/文件夹的引用。为此,我们可以将相对引用作为参数传递给子例程,或者我们可以使用for
command
@echo off
setlocal enableextensions disabledelayedexpansion
set "newDir=..\..\bin"
rem With a subroutine
call :resolve "%newDir%" resolvedDir
echo %resolvedDir%
rem With a for - retrieve the full path of the file/folder being
rem referenced by the for replaceable parameter
for %%f in ("%newDir%") do echo %%~ff
endlocal
goto :EOF
:resolve file/folder returnVarName
rem Set the second argument (variable name)
rem to the full path to the first argument (file/folder)
set "%~2=%~f1"
goto :EOF
EDIT
提交的代码获取当前目录的相对路径,而不是批处理文件目录。如果您需要相对的批处理文件,请尝试
set "newDir=%~dp0\..\..\bin\"
where %~dp0
是当前批处理文件的驱动器和路径(%0
是对当前批处理文件的引用)并继续使用相同/相似的代码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)