2012-07-30 117 views
1

我有一個批處理文件,這需要作爲參數文件路徑如何獲取字符串的最後一個單詞?

set filePath = %1 

現在,讓我們說,文件路徑爲:C:\Temp\Folder,我想設置Folder在一個新的變量。我怎樣才能做到這一點?

我在網上搜索,並且所有的解決方案是這樣的:

for %%A in (%filePath%) do set last=%%A 

,但這僅適用於字符串用空格。通過將~n修飾符%1

set filePath=%1 
set filePath=%filePath:\= % 
for %%A in (%filePath%) do set last=%%A 
+0

這可能有所幫助:http://www.dostips.com/DtTipsStringManipulation.php#Snippets.SplitString – nolegs 2012-07-30 17:34:52

回答

3

您可以從C:\Temp\Folder提取Folder

SET "last=%~n1" 

如果最後

3

您可以用空格代替斜線,然後解析出來商品可能包含.,請使用~nx代替:

SET "last=%~nx1" 

~n修飾符適用於位置參數或循環變量,並從由該參數或變量指定的路徑中提取姓氏。 ~x修改器提取姓氏的擴展名(從最後的.開始的部分)。因此,~nx提取(最後)名稱和擴展名。

+0

謝謝,這工作。 – Schaliasos 2012-07-30 17:38:26

+0

巧妙的技巧,儘管很脆弱。如果名稱包含空格,則結果將不正確。不過,如果OP只打算在沒有空格的情況下使用這個名字,我想這應該是。 – 2012-07-30 17:59:09

相關問題