2017-06-20 169 views
0

我有一個簡單的批處理文件,用於以tar/gzip格式存檔文件。我已將該批處理文件放在system32中,以便我可以從任何地方訪問它。獲取當前文件夾名稱

我打開命令窗口,使用「shift +右鍵單擊」在我想要歸檔的文件夾內容的特定文件夾中,並輸入批處理文件的名稱(targz.bat)。批處理文件進行歸檔/壓縮。

問題是我使用絕對路徑。我需要一種方法來獲取當前目錄和當前文件夾的名稱。我可以通過%cd%獲取當前目錄,但是如何獲取文件夾名稱?

例如:

set currentdir=%cd%   "C:\xampp\htdocs\wordpress" 
set currentfoldername=  should be just "wordpress" 

實際代碼:

@echo off 
cd "C:\Program Files\7-Zip" 
7z a -ttar "C:\xampp\htdocs\wordpress\archive.tar" "C:\xampp\htdocs\wordpress\*" 
7z a -tgzip "C:\xampp\htdocs\wordpress\archive.tar.gz" "C:\xampp\htdocs\wordpress\archive.tar" 
del "C:\xampp\htdocs\wordpress\archive.tar" 
exit 

期望:

​​
+2

https://stackoverflow.com/questions/8071458/get-directory-name-from-path-of-cd –

+0

@BrankVictoria哦,我還以爲我看着。謝謝。 – akinuri

+1

我會創建一個[sendto條目](https://stackoverflow.com/questions/6852833/running-a-batch-script-by-right-clicking-any-file)。 – LotPings

回答

1

使用~n修改,你可以easely得到一個路徑的最後一個元素:

for %%a in (%cd%) do set "currentfoldername=%~na" 
+1

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – DimaSan

+1

我對那個@DimaSan好,用一個簡單的解釋編輯! – SachaDee