批量分隔的批次中的最后一个标记

Ond*_*cek 2 windows for-loop batch-file

我有一个字符串"xx-yy-zz"

我需要在最后一个减号后获得该部分.

通常,我这样做

FOR /F "tokens=1-3 delims=-" %%i IN ("xx-yy-zz") DO SET USER_COUNTRY=%%k
echo Country: %USER_COUNTRY%   
Run Code Online (Sandbox Code Playgroud)

但是现在我没有固定长度的字符串(可能有2/3/4分隔符)

如何指定我想要最后一个?所以我的代码适用于"xx-yy-zz"以及"xx-yy-zz-aa"

有人可以帮帮忙吗?

Ste*_*han 7

使用普通for(不/f):

set string=xxx-yyy-zzz
for %%a in (%string:-= %) do set last=%%a
echo %last%
Run Code Online (Sandbox Code Playgroud)

(%string:-= %-空格替换每个空格,因此for可以将字符串拆分为标记并将它们中的每一个分配给(相同的)变量,从而使变量保持最后一个标记.