2017-04-17 124 views
0

我想根據分隔符/從字符串中提取子字符串。子串提取必須是飢餓的,所以我想從字符串中獲取所有字符,直到最後的/。例如:Win批處理腳本:從字符串中提取子字符串

字符串:/ab/bcd/casd/adsd/se/23

字符串:/ab/bcd/casd/adsd/se/

P.S:我所看到的其他QnAs和他們不回答其中最後一個分隔符發生,應被用來提取的子字符串的特定部分。

回答

2
@ECHO OFF 
SETLOCAL 
SET "String=/ab/bcd/casd/adsd/se/23" 
FOR /f "delims=" %%a IN ("%string%") DO SET substring=%%~pa 
SET "substring=%substring:\=/%" 
echo %substring% 

GOTO :EOF 

你在細節上有點缺乏。假設涉及的字符串不包含\,這可能適用於您。將字符串視爲文件名,刪除「名稱+擴展名」,然後將/轉換爲\轉換。

+0

This works great!謝謝。 – yeniv

+0

給出的示例不是問題,但如果字符串以驅動器號開頭,則會失敗。使用'in(「a:\ a%string%」)'然後在分配'「substring = %%〜pa」'後可以很容易地解決,用'%substring:〜2%'去除'\ a',然後將\轉換回/。 – dbenham