2013-01-17 91 views
2

我想获得一个目录的层次结构中的一个级别的文件夹的路径,并将其设置为一个变量。批处理:获取上一个目录中文件夹的完整路径?

现在我有:(?批次字符串)

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

其中%project.root%是项目目录的完整路径。

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

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

+0

可能重复[如何将变量设置为Windows上父目录的路径?](http://stackoverflow.com/questions/975521/how-to-set-a-variable-to-the-path -of-父目录上的窗户)。 (我发现链接查看“相关”主题列表中的第二个项目,直到您的问题的右侧;该列表会在您输入问题时出现,因此在发布之前您应该也已经看过。) –

+0

我不能这样做,因为我没有从当前目录工作。不管怎么说,多谢拉。 – user1964974

+0

请编辑你的问题,然后澄清你实际问了什么。我以前的评论完全取决于你*在你的问题中实际发布的内容*。 :-)你的问题具体说明了“我当前目录**的层次结构中的一个层次”,这个链接问题正是如此。 –

回答

-1

这很简单:

要获得一个变量的当前目录简单地说 集/变量= CD 要返回一个级别说: CD ..

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

+0

我认为这将是%cd%...:P在:设置VAR =%CD% –

+0

这是无稽之谈。 'set/a'用于*算术*。结果你只会得到'0'。 – Joey

+0

@Joey但设置var =%cd%确实使var包含当前目录... :) –

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 

这将暂时设置你的当前目录,存储路径和回报。

相关问题