【批处理】按分隔符获取指定段字符

如批处理中某变量为:AB\CDE\FG\HIJK要求以“\”为分隔符,此时就变为了4节,要取到最后一段字符怎么办?(并非是4节,可能是任意数,但要取到的都是最后一节)... 如批处理中某变量为:
AB\C DE\FG\HI JK
要求以“\”为分隔符,此时就变为了4节,要取到最后一段字符怎么办?
(并非是4节,可能是任意数,但要取到的都是最后一节)
展开
 我来答
wacs5
2011-12-19 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2822万
展开全部
@echo off
setlocal enabledelayedexpansion
set var=AB\C DE\FG\HIJ K
:loop
for /f "tokens=1,* delims=\" %%i in ('echo !var!') do (
if "%%j"=="" (
REM 后面已经没有词了,设置最后一个字段到LastWord变量中
set LastWord=%%i
) else (
REM 除去第一个字段后,再赋给var变量,进行循环
set var=%%j
REM 下面这一行可以去掉
echo var=!var!
goto :loop
)
)

set LastWord=!LastWord!
flameleo11
2012-12-30 · TA获得超过5343个赞
知道大有可为答主
回答量:1943
采纳率:50%
帮助的人:999万
展开全部
:StringGetLastPart ( ://&return checkstr without "", %char delims
set __v__maxlooptimes=32
@FOR /L %%i in (1,1,%__v__maxlooptimes%) do (
@FOR /F "eol= tokens=1,* delims=%2" %%i IN ('echo !%1!') DO (
if "%%j"=="" (
set %1=%%i
GOTO :eof
) else (
set %1=%%j
)
)
)
set %1=[error]: over max loop times
GOTO :eof
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sudoku52
2011-12-19 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4917万
展开全部
@echo off
set s=AB\C DE\FG\HI JK
set f=\
set n=1
:begin
call set x=%%s:~-%n%,1%%
if "%x%"=="%f%" goto end
set /a n+=1
goto begin
:end
set/a n-=1
call set s=%%s:~-%n%,%n%%%
echo %s%
追问
执行结果貌似是对了,看不懂……能不能解释一下啊?谢谢
追答
从最后一个字符向前找分隔符,找到后取后面的字符串。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式