批处理如何将一个字符串里的内容逐个输出

setdis=CDEFG将其逐个输出CDEFG... set dis=CDEFG
将其逐个输出
C
D
E
F
G
展开
 我来答
野人拆
2013-04-09 · TA获得超过1069个赞
知道小有建树答主
回答量:815
采纳率:57%
帮助的人:554万
展开全部
@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!的变量。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式