我正在尝试获取目录层次结构中上一级的文件夹的路径并将其设置为变量。
我现在有:
set LOCALFOLDER=%project.root%\builds\%BUILDFOLDER%
其中 %project.root% 是项目目录的完整路径(在批处理字符串中?)。
让我们说%project.root%
是"C:\Hardware\project"
。
我想回到%project.root%
(ie C:\Hardwre
) 的一级并将该路径存储在一个变量中。有办法吗?
我正在尝试获取目录层次结构中上一级的文件夹的路径并将其设置为变量。
我现在有:
set LOCALFOLDER=%project.root%\builds\%BUILDFOLDER%
其中 %project.root% 是项目目录的完整路径(在批处理字符串中?)。
让我们说%project.root%
是"C:\Hardware\project"
。
我想回到%project.root%
(ie C:\Hardwre
) 的一级并将该路径存储在一个变量中。有办法吗?
路径操作变得有点混乱。一种选择如下:
set "project.root=C:\Hardware\project"
set "X=%project.root%"
:l
if "%X:~-1%"=="\" goto al
set "X=%X:~0,-1%"
goto l
:al
set "X=%X:~0,-1%"
set "project.parent=%X%"
echo %project.parent%
依次删除最后一个字符,直到\
删除 a。
如果您正在处理文件系统中的实际路径,我会说您使用以下pushd
方法:
pushd %project.root%
cd ..
set project.parent=%CD%
popd
这会临时设置您的当前目录,存储路径并返回。
这很简单:
要在变量中获取当前目录,只需说 set /a VARIABLE=cd 要返回一个级别说: cd ..
现在如果你说 "set /a VARIABLE=cd" 它被设置到上一个目录