标题: 批处理for语句从入门到精通配套练习题 [打印本页]
作者: namejm 时间: 2008-10-28 22:28 标题: 批处理for语句从入门到精通配套练习题
为了配合 for语句从入门到精通 的讲解,特开此专题,对for教程每一部分的讲解都在此处给出一批针对性的练习,方便新手迅速掌握for语句的用法。本练习不追求数量,而是针对for语句的各种技术细节给出针对性的题目,力求覆盖for语句的各个技术要点。
本练习仅仅提到提纲挈领的作用,要写出更高效更精炼的代码,还需要各位在实际应用中细加揣摩,尝试一题多解。
为了方便其他人借鉴,请在回帖中的每个代码前指明题号。
A:for语句的基本用法部分(请使用单纯的for语句解答本节题目):
A1:假设令 set str=I love,bbs;bathome=net,请分别显示出I、love、bbs、bathome和net这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
A2:条件同A1,要求最后只显示net这个字符串。目的:了解for语句的执行流程。
作者: jellyhk 时间: 2008-10-29 03:31
A1- set str=I love,bbs;bathome.net
- for /f "tokens=3-5 delims=,;= " %%a in ("%str%") do echo %%a %%b %%c
- pause
复制代码
===========================================
A2- set str=I love,bbs;bathome.net
- for /f "tokens=2 delims==" %%a in ("%str%") do echo %%a
- pause
复制代码
作者: zqy 时间: 2008-10-30 20:22
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出bbs、bathome和cn这三个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。- @echo off
- set "str=I love,bbs;bathome.net"
- for /f "tokens=1-5 delims=,;= " %%a in ("%str%") do echo %%c %%d %%e
- pause>nul
复制代码
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。- @echo off
- set "str=I love,bbs;bathome.net"
- for /f "tokens=5 delims=,;= " %%a in ("%str%") do echo %%a
- pause>nul
复制代码
作者: namejm 时间: 2008-11-1 11:47
楼上两位解答A部分的题目时,都用到了 for 语句的 /f 开关,和出题的初衷不符,希望接下来的答案能用单纯的 for 语句来解答。
作者: loveruixue 时间: 2008-11-1 11:51
set "str=I love,bbs;bathome.net"
for /f "tokens=3-5 delimes=, ; = " %%a in (%str%) do echo %%a %%b %%c
set "str=I love,bbs;bathome.net"
for /f "tokens=2 delimes==" %%a in (%str%) do echo %%a
作者: Batcher 时间: 2008-11-1 18:17 标题: 回复 5楼 的帖子
楼主已经说的很清楚了,不允许用for /f
作者: lovelymorning 时间: 2008-11-1 19:28
除了for,能不能用其它的命令,还是只能用 for,连for的参数都不能用????
作者: namejm 时间: 2008-11-9 10:44
A系列题目是为了训练新手对基本for语句的理解,只能以基本的for语句解题,不要使用/f开关,其他不作限制。
作者: heng520 时间: 2008-11-12 16:58
想不出别的办法了,只能用条件出来杀了。喳喳。。学习中~~
A1
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do (
if %%a==bbs echo %%a
if %%a==bathome echo %%a
if %%a==cn echo %%a
)
pause>nul
A2
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do (
if %%a==cn echo %%a
)
pause>nul
[ 本帖最后由 heng520 于 2008-11-12 17:06 编辑 ]
作者: namejm 时间: 2008-11-12 18:40
A1题目已经更换,难度降低,请大家继续解答。
作者: 眸来 时间: 2008-11-13 10:10
A1
@echo off
for %%i in (set str=llove,bbs;bathome.net) do echo %%i
pause
A2
不会
作者: akiraakito 时间: 2008-11-13 13:35
A1:
[Code]
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause>nul
[Result]
I
love
bbs
bathome
cn
[Discussion]
说明for语句将“空格、逗号、分号、等号”视作元素分隔符
A2:
[Code]
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do (set a=%%i)
echo %a%
pause>nul
[Result]
cn
[Discussion]
将%%i的值赋予变量a,在执行for命令时,变量a的值不断被后一个元素所覆盖,最后输出变量a的最终值
[ 本帖最后由 akiraakito 于 2008-11-13 13:38 编辑 ]
作者: qpzlsn 时间: 2008-11-22 11:40 标题: 我是照葫芦画瓢
看了楼主的第一堂课,我是照葫芦画瓢,不知道对不对!
A1
@echo off
set str=I love,bbs;bathome.net
for %%I in (I love,bbs;bathome.net) do echo %%I
pause>nul
A2
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do (if %%i==cn echo %%i)
pause>nul
作者: fish8077 时间: 2008-11-22 14:56
楼主的这个教程太棒了. 期待更新!!!
顺便问下, 能不能让我转到我的QQ空间去?
A1:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
A2:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do (if %%i==cn echo %%i)
pause
不知道答案对不对, 思路对不对?
作者: firewolf85 时间: 2008-12-7 18:34
- @echo off
- set str= I love,bbs;bathome.net
- for %%i in (%str%) do echo %%i
- pause>nul
复制代码
第二题这样可以吗
- @echo off
- set str= I love,bbs;bathome.net
- for %%i in (%str%) do cls&echo %%i
- pause>nul
复制代码
[ 本帖最后由 firewolf85 于 2008-12-7 18:40 编辑 ]
作者: sanc 时间: 2008-12-9 17:56
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%,%bathome%) do echo "%%i"
pause
-------------------------------------------------------------------
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%,%bathome%) do if %%i==cn echo "%%i"
pause
[ 本帖最后由 sanc 于 2008-12-9 18:01 编辑 ]
作者: jie392617 时间: 2008-12-13 18:47 标题: 如果一个人的心
没办法,命中注定,而我又拼不过命。
作者: HooC 时间: 2008-12-26 15:33 标题: 值得。
不仅仅是期待更新,更希望有一套完整的教程。
作者: flyinshanghai 时间: 2009-1-5 15:09 标题: 回复 1楼 的帖子
楼主的for入门级的教程真是不错,期待着其他内容的添加和跟新....
作者: skuny 时间: 2009-1-9 13:08
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do (
if not %%i==cn set/p=%%i、<nul
if %%i==cn echo %%i)
pause
-------------------------------------------------------------------
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do if %%i==cn echo %%i
pause
作者: skuny 时间: 2009-1-9 13:15
原帖由 sanc 于 2008-12-9 17:56 发表
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%,%bathome%) do echo "%%i"
pause
-------------------------------------------------------------------
@echo off
set str=I love,bbs;bathome= ...
添加%bathhome%为何?????
作者: Areahe 时间: 2009-1-10 11:06
for %a in ( ) do if exist %A=cn echo %A
作者: doshome 时间: 2009-1-11 12:36
仔细看看 一定不错 慢慢体会
作者: p05401144 时间: 2009-1-14 13:06
A1:
@echo off
for /f "delims=,;= tokens=1-5" %%i in ("I love,bbs;bathome.net") do echo %%i %%j %%k %%l %%m
pause>nul
A2:
@echo off
for /f "delims== tokens=2" %%i in ("I love,bbs;bathome.net") do echo %%i
pause>nul
作者: q787871751 时间: 2009-1-21 02:11
@echo off
set str=I llove,bbs;bathome.net
for %%i in (I llove,bbs;bathome.net) do echo %%i
pause
@echo off
set str=I llove,bbs;bathome.net
for %%i in (cn) do echo %%i
pause
只会这样,其他的不知道了哦.
作者: ccmvhd 时间: 2009-1-22 12:13
A1
@echo off
for /f "tokens=1-5 delims=,;= " %%i in ("i love,bbs;bathome.net") do echo %%i %%j %%k %%l %%m
pause>nul &&exit
A2
@echo off
for /f "tokens=1-2 delims==" %%i in ("i love,bbs;bathome.net") do echo %%j
pause>nul &&exit
作者: skyinheaven 时间: 2009-2-9 17:03
A1
@echo off
set str=I llove,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
A2
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do if %%i==cn echo %%i
pause
教程写的很好,学到很多东西!
作者: TonyW 时间: 2009-2-16 03:26
原帖由 sanc 于 2008-12-9 17:56 发表
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%,%bathome%) do echo "%%i"
pause
-------------------------------------------------------------------
@echo off
set str=I love,bbs;bathome= ...
我始终没有弄明白 %bathome% 为什么要加多这个??它起着什么作用??强烈要求当事人或知情人告知!!
PS:非常感谢楼主!!您让我学到了不少东西,即使我现在还无法自由运用!!
作者: leoluo 时间: 2009-2-24 16:50
多加个%bathome%完全是迷惑人的, %bathome%没有值,也没有任何作用...
作者: jackelijie135 时间: 2009-3-12 21:59
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
******************
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do if %%i==cn echo %%i
pause
作者: keen 时间: 2009-3-13 23:50
A1:- @echo off
- set str=I love,bbs;bathome.net
- for /f "tokens=1-5 delims=,;= " %%i in ("%str%") do echo %%i %%j %%k %%l %%m
- pause
复制代码
A2:- @echo off
- set str=I love,bbs;bathome.net
- for /f "tokens=1-5 delims=,;= " %%i in ("%str%") do echo %%m
- pause
复制代码
- @echo off
- set str=I love,bbs;bathome.net
- for /f "tokens=5 delims=,;= " %%i in ("%str%") do echo %%i
- pause
复制代码
[ 本帖最后由 keen 于 2009-3-13 23:53 编辑 ]
作者: keen 时间: 2009-3-13 23:58
没看清题意,我用 参数 /f 了。学习中……
作者: keen 时间: 2009-3-14 00:11
12楼写的不错,为什么没给加PB?
咱们论坛,除了巡查能给加PB,其他人普通会员能不能给写的好的加PB?
作者: keen 时间: 2009-3-14 00:17
仿照12楼:- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do echo %%i &echo.
- pause
-
- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do (set a=%%i)
- echo %a%
- pause
复制代码
作者: 骚鸡 时间: 2009-3-14 14:16
A1
A2
都不会,不过等下可能会了,(谁要你在“for语句从入门到精通”里面说到第2点的时候就说来这做题啊?至少我学了第2点是做不出来题。。。 )
作者: Batcher 时间: 2009-3-14 15:02 标题: 回复 33楼 的帖子
能,请查看:http://bbs.bathome.net/thread-1869-1-1.html
作者: wangantao 时间: 2009-3-15 00:08
A1:
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do echo %%a
作者: wangantao 时间: 2009-3-15 00:19
A2:
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do (
if %%a==cn echo %%a
)
作者: wangantao 时间: 2009-3-15 00:26 标题: 回复 12楼 的帖子
A2问题给出的答复独特,很好。
作者: jwq 时间: 2009-3-15 13:45 标题: FOR的两段代码
FOR的两段代码,怎么结果不一样呢?朋友们帮看下,谢谢了
作者: jwq 时间: 2009-3-15 13:57 标题: FOR的两段代码
前面发的貌似解决了,打扰了
作者: Batcher 时间: 2009-3-15 14:11 标题: 回复 40楼 的帖子
直接贴代码不是很好吗?为啥非要贴附件?
作者: laywhx 时间: 2009-3-15 15:46
A1
@echo off
set str=I love,bbs;bathome.net
for %%l in (%str%) do echo %%l
pause
A2
@echo off
set str=I love,bbs;bathome.net
for %%l in (%str%) do cls&echo %%l
pause
(如果知识答题的话这个应该算是最佳答案了)
@echo off
set str=I love,bbs;bathome.net
for %%l in (%str%) do if %%l==cn echo %%l
pause
(这个的可扩展性好)
作者: flyingsand 时间: 2009-3-18 16:04
A1- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do echo %%i
- pause
复制代码
A2- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do cls& echo %%i
- pause
复制代码
作者: rogoo 时间: 2009-3-22 15:45
for /f "delims=,;= tokens=1-5" %%i in ("%str%") do (echo %%i %%j %%k %%l %%m)
pause
作者: kfwangxiaoqiang 时间: 2009-4-3 09:58
第一个
@echo off
set str=I love,bbs;bathome.net
for %%I in (%str%) do echo %%I
pause
第二个
@echo off
set str=I love,bbs;bathome.net
for %%I in (%str%) do (set var=%%I)
echo %var%
pause>nul
作者: limpy 时间: 2009-4-3 12:36
A:代码:
@echo off
set str="I love,bbs;bathome.net"
for /f "delims=,;= tokens=1-5" %%i in (%str%) do (echo %%i %%j %%k %%l %%m)
pause
B:代码:
@echo off
set str="I love,bbs;bathhome=cn"
for /f "delims== tokens=2" %%i in (%str%) do (echo %%i)
pause
作者: syt0529 时间: 2009-4-5 15:18
看了一下,版主的问题问的好,第一题不说了,比较简单,用默认的分隔符就行了,这里说一下第二题,我觉得最贴题的就是用cls和set来处理,因为楼主的要求是要理解for的运行过程,如果用if来判断的话有点勉强。鉴定完毕.
作者: rboert 时间: 2009-4-5 15:44
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do cls& echo %%i
pause
作者: myeanngg 时间: 2009-4-11 18:13
set str=I love,bbs;bathome.net
for %%i in (str) do ( if i==cn do echo %%i)
作者: aoelus 时间: 2009-5-2 07:39
刚开始学,感谢楼主编写的for教程,这是我到目前为止见过的最通俗易懂的了
第一题
------------------------------------------------------ @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do echo %%i
- pause
复制代码
第二题
-------------------------------------------------------------------------- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do cls & echo %%i
- pause
复制代码
作者: wxlh2002 时间: 2009-5-18 23:48 标题: 下面这个练习那位高手能给出正确的答案
练习:用for语句建立test1.txt、test2.txt和test3.txt三个文本文件。
作者: seaseasea3 时间: 2009-5-23 11:22
- @echo off
- for /f "tokens=3,4,5,6,7 delims=,=; " %%i in ("set str=I love,bbs;bathome.net") do (
- echo %%i
- echo %%j
- echo %%k
- echo %%l
- echo %%m
- )
- pause
复制代码
作者: wgx1688 时间: 2009-5-31 18:19 标题: 回复 52楼 的帖子
for %%a in (text1.txt,text2.txt,text3.txt) do md %%a
作者: amwgjhpl 时间: 2009-6-7 03:07
@echo off
for %%I in (I love,bbs;bathome.net) do echo %%I
pause
作者: fyb198351 时间: 2009-6-10 00:36
A- set str=l love,bbs;bathome.net
- for %%a in (%str%) do echo %%a
复制代码
B
[code}
set str=l love,bbs;bathome.net
for /f "tokens=2 delims==" %%a in ("%str%") do echo %%a
[/code]
作者: rwxyxy 时间: 2009-6-10 13:06
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。- @echo off
- set str=I love,bbs;bathome.net
- for %%a in (%str%) do echo %%a
- pause>nul
复制代码
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。- @echo off
- set str=I love,bbs;bathome.net
- for %%a in (%str%) do ( if "%%a"=="cn" echo %%a )
- pause>nul
复制代码
作者: zljzsmzzx 时间: 2009-6-10 14:25 标题: 回复 52楼 的帖子
楼主的问题都有那么多人回答了,大家的答案都大同小异。所以我也不重复回答了。下面这个是52楼朋友的答案。
如果只是单纯的用FOR而不能加参数的话可以这样:- @for %%a in (1 2 3) do (cd.>test%%a.txt)
复制代码
如果可以用参数的话用/l来处理工作量比较大的很好用。- @for /l %%a in (1,1,3) do (cd.>test%%a.txt)
复制代码
(另外想请问一下,为什么我在“原创代码”版块里不能发新帖呢?是我“等级”太低了还是?我是昨天注册的。)
[ 本帖最后由 zljzsmzzx 于 2009-6-10 14:31 编辑 ]
作者: keen 时间: 2009-6-14 14:42 标题: 回复 59楼 的帖子
请学会使用code将代码括起来
http://www.bathome.net/faq.php?action=message&id=18
作者: wuqi312 时间: 2009-6-18 20:40 标题: 回复 12楼 的帖子
for %%i in (%str%) do (set a=%%i)
覆盖这个想法真不错啊!
我只想到了个if啊。
高手哦
作者: wwtao 时间: 2009-6-23 11:03
A1:
@echo off
set str=I love,bbs;bathome.net
for %%i in(%str%) do echo %%i
pause
A2:
@echo off
set str=I love,bbs;bathome.net
for %%i in(%str%) do if %%i==cn :echo %%i:
pause
我是新手弄错了别骂,谢谢,请多指教
作者: johnson3333 时间: 2009-6-27 10:47
- ::A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
- @echo off
- (
- for /f "tokens=1,2,3,4,5 delims=,;= " %%a in ("I love,bbs;bathome.net") do (
- echo;%%a
- echo;%%b
- echo;%%c
- echo;%%d
- echo;%%e
- )
- )
- pause
- ::A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
- @echo off
- (
- for /f "tokens=1,2,3,4,5 delims=,;= " %%a in ("I love,bbs;bathome.net") do (
- echo;%%e
- )
- )
- pause
复制代码
作者: yinsigan 时间: 2009-7-6 17:07
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
第一题:
@echo off
set str=I love,bbs;bathome.net
for %%i in ("%str%") do set a=%i:I%
echo %a%
for %%i in ("%str%") do set b=%str:~2,4%
echo %b%
for %%i in ("%str%") do set c=%i:bbs%
echo %c%
for %%i in ("%str%") do set d=%i:bathome%
echo %d%
for %%i in ("%str%") do set e=%str:~-2%
echo %e%
pause
set str=I love,bbs;bathome.net
for /f "todens=1,2,3,4,5 delims=,;= " %%i in ("%str%") do (
echo %%i
echo %%j
echo %%k
echo %%l
echo %%m
)
pause
第二种解法:
set str=I love,bbs;bathome.net
for /f "delims= " %%i in ("%str%") do echo %%i
for /f "tokens=1 delims=," %%i in ("%str%") do for /f "tokens=2 delims= " %%j in ("%%i") do echo %%j
for /f "tokens=2 delims=," %%i in ("%str%") do for /f "delims=;" %%j in ("%%i") do echo %%j
for /f "tokens=2 delims=;" %%i in ("%str%") do for /f "tokens=1 delims==" %%j in ("%%i") do echo %%j
for /f "tokens=2 delims==" %%i in ("%str%") do echo %%i
pause
作者: yinsigan 时间: 2009-7-6 17:12
for /f "tokens=1,2,3,4,5 delims=,;= " %%a in ("I love,bbs;bathome.net") do (
echo %%a & echo %%b & echo %%c & echo %%d & echo %%e
作者: keen 时间: 2009-7-6 19:10 标题: 回复 65楼 的帖子
你的代码有错误,你在写好代码后,都不测试一下吗?
作者: yinsigan 时间: 2009-7-6 23:23
不好意思,我测试后可能粘贴的时候贴少
新手,多多指教
作者: eneir 时间: 2009-7-9 02:24 标题: 标准答案
A1:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause>nul
A2:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do set str=%%i
echo %str%
pause>nul
作者: vsbat 时间: 2009-7-12 14:51
A1:- @echo off
- set str=i love,bbs;bathome.net,
- for %%i in (%str%) do echo %%i
- pause>nul
复制代码
A2:- @echo off
- set str=i love,bbs;bathome.net,
- for %%i in (%str%) do if "%%i"=="cn" echo %%i
- pause>nul
复制代码
作者: vsbat 时间: 2009-7-12 15:07 标题: 回复 62楼 的帖子
你的A2题 代码有误------
不能正确执行
批处理一闪而过,捕捉不到任何信息---------在CMD窗口下执行后 提示 : 此时不应有%%i
具体什么原因 我也没弄清楚
[ 本帖最后由 vsbat 于 2009-7-12 15:10 编辑 ]
作者: keen 时间: 2009-7-12 17:04 标题: 回复 70楼 的帖子
你的代码跟他的基本一样,难道你自己没看出他的那儿跟你的不一样嘛?
62楼的代码在最后显示的时候在echo前面加了个冒号,导致一闪而过。
作者: loop3231262 时间: 2009-7-16 02:40
原A1题
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str:~7%) do echo %%a
pause
现A1题
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do echo %%a
pause
测试OK
A2题
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str:~-2%) do echo %%a
pause
学习过程中有很多以为,楼主可以告诉个Q吗?
作者: loop3231262 时间: 2009-7-16 02:55 标题: 回复 70楼 的帖子
原因是他的命令里多了几个: 导致严重语法错误。所以黑光一闪而过。无法运行
至于在dos下为什么显示 此时不应有%%
因为在dos参数不使用%% 而是单%
作者: loop3231262 时间: 2009-7-16 03:00
我想楼主的主要意思是让我们明白
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
这五句。
理解这一点,题目就好做了
作者: huangweidong 时间: 2009-7-16 14:29
看一下了。到底是什么东西了
作者: zysheng110 时间: 2009-7-16 15:15 标题: 请楼主审批……
@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
[ 本帖最后由 zysheng110 于 2009-7-16 15:18 编辑 ]
作者: msconfig 时间: 2009-7-23 17:53
A1
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
A2
还不会做,先看看别人的再说
作者: msconfig 时间: 2009-7-23 18:09
参考了别人的,不知道这样算不算合格
A2
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do if %%i==cn echo cn
pause>nul
作者: msconfig 时间: 2009-7-23 18:14 标题: 回复 71楼 的帖子
好像在cn后面还加了个逗号吧,我去掉逗号后,好像没有cn的字样出来,就一个嘿板在那。
作者: keen 时间: 2009-7-23 18:59 标题: 回复 79楼 的帖子
你在说那个楼层的代码?
逗号也是for语句中默认的分隔符。
作者: benz1979 时间: 2009-7-26 14:44
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
作者: lee 时间: 2009-7-26 22:31
A1:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
A2:
@echo off
setlocal enabledelayedexpansion
set str=I love,bbs;bathome.net
for %%i in (%str%) do (
set str=%%i
)
echo !str!
pause
新手。请多指教!!
作者: houenxun 时间: 2009-7-29 08:46 标题: 回复 1楼 的帖子
感谢分享,顶!!!!!!!!!!!!!!
作者: dazheng 时间: 2009-7-29 10:11 标题: 回答
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
作者: zhaicheng 时间: 2009-7-30 18:19
pause>nul 有什么实际作用吗
作者: wxcute 时间: 2009-7-30 18:53 标题: 回复 85楼 的帖子
有阿,作用就是暂停而不显示提示文字。
作者: zlgeng 时间: 2009-7-31 01:54 标题: 请老师检查
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
@echo off
set str=i love,bbs;bathome.net,
for %%i in (%str%) do echo %%i
pause
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
@echo off
set str=I love,bbs;bathome.net
for /f "tokens=2 delims==" %%i in ("%str%") do echo %%i
pause
作者: nopr 时间: 2009-8-1 17:16 标题: 我来迟了
A1- @echo off
- set str=i love,bbs;bathome.net
- for %%i in (%str%) do echo %%i
- pause > nul
复制代码
A2- @echo off
- set str=i love,bbs;bathome.net
- for %%i in (%str%) do echo %%i > a.txt
- type a.txt & del a.txt
- pause > nul
复制代码
[ 本帖最后由 nopr 于 2009-8-1 17:34 编辑 ]
作者: hs4814 时间: 2009-8-8 16:44
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do echo %%a
pause>nul
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do if %%a==cn echo %%a
pause>nul
请老师检查
作者: zlgeng 时间: 2009-8-10 12:49
-
- @echo off
- set str=i love,bbs;bathome.net,
- for %%i in (%str%) do echo %%i
- pause
-
复制代码
作者: zhuzizzq 时间: 2009-8-15 04:20
- @echo off
- set str=i love bbs bathome.net
- for %%a in (%str%) do echo %%a
- pause
复制代码
作者: zhuzizzq 时间: 2009-8-15 04:21
- @echo off
- set str=I love,bbs;bathome.net
- for %%a in (%str%) do echo %%a
- pause
复制代码
作者: dthaoa1 时间: 2009-8-23 21:47
为什么我没看到东西?
作者: lianfayong 时间: 2009-9-17 17:17
第一题
- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do echo %%i
- pause
复制代码
第二题 偷看人家答案的,我想了很久没想出来,脑瓜子不灵活 - -||
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do cls&%%i /for %%i in (%str%) do (set a=%%i) enter echo %a%
- pause
复制代码
[ 本帖最后由 lianfayong 于 2009-9-18 15:26 编辑 ]
作者: smallbaby 时间: 2009-9-18 14:22
A2- @echo off
- set str=I love,bbs;bathome.net
- echo 看看:
- for %%i in (%str%) do if %%i==cn echo %%i
- pause
复制代码
A1- @echo off
- set str=I love,bbs;bathome.net
- echo 看看:
- for %%i in (%str%) do echo %%i
- pause
复制代码
作者: jiasongfu 时间: 2009-9-29 17:19 标题: 第二题可以这样写吗
- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str:~-2%) do echo %%i
- pause
复制代码
作者: qwe23068 时间: 2009-10-11 20:00 标题: 回复 1楼 的帖子
A1:- @echo off
- set str=I love,bbs;bathome.net
- for %%i in (%str%) do echo %%i
- pause
复制代码
A2- @echo off
- set "str=I love,bbs;bathome.net"
- for /f "delims=,;= tokens=4" %%i in ("%str%") do echo %%i
- pause
复制代码
作者: wsjxwj 时间: 2009-10-17 10:52
A1的:- echo off
- set str=i love,bbs;bathome.net
- for %%i in (i love,bbs;bathome.net ) do echo %%i
- pause > nul
复制代码
A2的还在调试,呵呵,我是新手 还望LZ多多指教
作者: wsjxwj 时间: 2009-10-17 10:55
刚刚那个A1的发错了,重发- echo off
- set str=i love,bbs;bathome.net
- for %%i in (%str%) do echo %%i
- pause > nul
复制代码
作者: wsjxwj 时间: 2009-10-17 11:13
A2:- set str=I love,bbs;bathome.net
- for %%a in (%str%) do if %%a==cn echo %%a
- pause
复制代码
作者: ghostwar 时间: 2009-10-24 06:39
- @echo off
- for %%a-e in( i love bbs bathome.net ) do echo %%a-e
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |