1个回答
展开全部
@echo off&setlocal enabledelayedexpansion
set "dis=CDEFG"
set i = 0
:loop
set "char=!dis:~%i%,1!"
set/a i=!i!+1
if "%char%"=="" goto end
echo %char%
goto loop
:end
pause
更多追问追答
追问
set "dis=CDEFG"
这是什么写法?
还有这个 @echooff&setlocal enabledelayedexpansion 中的
&setlocal enabledelayedexpansion 是干什么用的?
追答
set "dis=CDEFG" 是一种个人习惯,如果dis变量里有空格的话我们就需要用" "去包括起来,这样的话字符串就变成了"CDEFG"而不是CDEFG,如果写成set "dis=CDEFG"就没问题了。
@echooff&setlocal enabledelayedexpansion 是用来启动延迟变量的,这里用到这个功能的是这一句:set "char=!dis:~%i%,1!",举个简单的例子,字符串char=ABCD你要截取第2个到第4个字符串,你可以这样写 %char:1,2%,数字1表示字符串的第1项(也就是第2项,因为从0开始算的)
数字2表示从1的位置起取2个字符的意思。我们这里需要设置变量来代替数字1,然后进行个循环,所以我们只能使用延迟变量,作用就是 !dis:~%i%,1! 的时候先解析%i%变量,然后把%i%的值填充到
!dis:~%i%,1!,在循环中连贯起来就是[%dis:0,1%], [%dis:1,1%], [%dis:1,1%]等等,cmd优先解释%xx%的变量,然后再解释!xxx!的变量。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询