2013-01-17 130 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 

這將暫時設置你的當前目錄,存儲路徑和回報。

相關問題