A1
@echo off
set str=I love,bbs;bathome.net
for /f "tokens=1-5 delims=,;=" %%a in ("%str%") do @echo %%a %%b %%c %%d %%e
pause
A2
@echo off
set str=I love,bbs;bathome.net
for /f "tokens=2 delims==" %%a in ("%str%") do @echo %%a
pause
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
set “str=I love,bbs;bathome.net”
for /f "tokens=1-5 delims=,;= " %%i in (%str%) do echo %%i %%j %%k %%m %%n
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程
set “str=I love,bbs;bathome.net”
for /f "tokens=2 delims== " %%i in (%str%) do echo %%i
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do echo %%a
echo 默认用(空格,逗号,分号,等号)作为元素分隔符
echo ------------------------------------------
echo ---------------------------------------
echo ------------------------------------
echo ---------------------------------
echo 第二题
pause
for %%a in (%str%) do (if %%a==cn echo %%a)
echo 根据元素所提取的过程发现%%a变量的变化!
pause>nul
我想楼主的主要意思是让我们明白
for命令的运行机理。是一个一个来的……。
@echo off
set str=I love,bbs;bathome.net
for %%a in %str% echo %%a
pause
第三行中,str=I love,bbs;batehome=cn
由于for命令默认分隔,因此实际上命令运行时是
for %%a in I echo %%a
for %%a in love echo %%a
for %%a in bbs echo %%a
for %%a in bathome echo %%a
for %%a in cn echo %%a
这五句。
理解这一点,题目就好做了