2009-06-10 154 views
15

命令行再次掙扎,我已經弄清楚,我可以在一個變量保存當前的工作目錄,如下所示:如何將變量設置爲Windows上父目錄的路徑?

SET current=%cd% 

我將如何設置父關係嗎? SET parent=%..%不起作用,因爲它呼應%..%

基本上,調用批處理腳本C:\a\b\myscript.bat具有以下內容:

@echo off 
set current=%cd% 
echo %current% 

打印C:\a\b,我想設置變量parent,使其將打印C:\a而不改變當前的工作目錄到..

這可能嗎?

回答

33

向上移動目錄,想起了電流,設置父,然後在彈出下來的目錄,回到你開始

@echo off 
set current=%cd% 
pushd .. 
set parent=%cd% 
popd 

echo current %current% 
echo parent %parent% 
+0

完美!我現在記得看到了推動和彈出的地方,但它完全放棄了我的想法。謝謝你的幫助。 – 2009-06-10 13:28:14

+0

你不僅僅是歡迎隊友:) – 2009-06-10 13:30:25

2

使用

pushd targetFolder 
set current=%cd% 
popd 

PUSHD/POPD保持堆棧以前訪問過的目錄。

+0

也謝謝你的幫助 – 2009-06-10 13:29:41

8

你也可以做這樣的事情:

 
set current=%CD% 
set parent=%CD%\.. 

它不給你父的規範名稱,但它始終應該是父文件夾的有效路徑。它也會比涉及pushd和popd的解決方案稍快,但這不會是批處理文件中的主要考慮因素。

編輯:請注意,如果當前文件夾是驅動器的根目錄,那麼到目前爲止,包括我的這裏在內的所有解決方案都會出現問題。沒有一種乾淨而簡單的方法,因爲在用戶模式下確實沒有驅動器的父級可見。

相關問題