批处理:获取上一目录中文件夹的完整路径?

时间:2013-01-17 23:13:39

标签: batch-file directory

我正在尝试获取目录层次结构中一级文件夹的路径,并将其设置为变量。

现在我有:

set LOCALFOLDER=%project.root%\builds\%BUILDFOLDER%

其中%project.root%是项目目录的完整路径(在批处理字符串中?)。

我们只是说%project.root%"C:\Hardware\project"

我想向%project.root%(即C:\Hardwre)返回一级并将该路径存储在变量中。有办法吗?

2 个答案:

答案 0 :(得分:4)

路径操作变得有点混乱。一种选择如下:

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%

在删除\之前连续删除最后一个字符。

如果您正在处理文件系统中的实际路径,我会说您使用pushd方法:

pushd %project.root%
cd ..
set project.parent=%CD%
popd

这会暂时设置当前目录,存储路径并返回。

答案 1 :(得分:-1)

这很简单:

要获取变量中的当前目录,只需说 设置/ VARIABLE = cd 回到一个级别说: cd ..

现在如果你说“set / a VARIABLE = cd”它被设置为上一个目录