2013-11-15 25 views
1

我正在編寫由Java程序調用的Windows批處理文件。許多表示文件目錄的不同字符串作爲參數傳遞到批處理文件中。我想弄清楚如何在「\」的最後一個實例之後提取一個字符串。例如,我有三個目錄:在批處理文件中的分隔符的最後一個實例之後提取字符串

C:\Users\owner\Documents 
C:\Users\owner\Videos 
C:\Users\owner\Pictures\Trip 

我想分割它,這樣的字符串變成:

Documents 
Videos 
Trip 

你們怎麼會建議我這樣做呢?

編輯:一個後續問題已經被問這裏:For loop in Windows batch file: Error: "The syntax of the command is incorrect"

回答

3

分配一個參數「參數」變量之後,使用:

for %%a in (%param:\= %) do set lastDir=%%a 

此方法,只要最後一個目錄不具有空間。如果需要,這個細節可能是固定的。所有參數的處理會是這樣的:

:nextParam 
    set "param=%~1" 
    if not defined param goto endParams 
    for %%a in (%param:\= %) do set lastDir=%%a 
    echo Last dir: %lastDir% 
    shift 
goto nextParam 
:endParams 

或者,在一個簡單的方法(不帶空格限制):

:nextParam 
    if "%~1" equ "" goto endParams 
    echo Last dir: %~N1 
    shift 
goto nextParam 
:endParams 
+0

這個答案非常有幫助!這正是我所期待的。感謝所有幫助過的人! – DerStrom8

1

如果字符串作爲參數傳遞1-3。您可以使用%〜n1,%〜n2,%〜n3來獲取路徑中的最後一個文件夾。

+0

我認爲這是一個良好的開端。我忘了提及傳遞給批處理文件的參數數量未知,所以我不得不讓程序確定參數的數量,併爲每個參數執行相應的操作。 – DerStrom8

+0

看看使用SHIFT命令。 – RGuggisberg

相關問題