找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: namejm

批处理for语句从入门到精通配套练习题

[复制链接]
发表于 2009-4-3 09:58:38 | 显示全部楼层
第一个
@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
发表于 2009-4-3 12:36:32 | 显示全部楼层
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
发表于 2009-4-5 15:18:21 | 显示全部楼层
看了一下,版主的问题问的好,第一题不说了,比较简单,用默认的分隔符就行了,这里说一下第二题,我觉得最贴题的就是用cls和set来处理,因为楼主的要求是要理解for的运行过程,如果用if来判断的话有点勉强。鉴定完毕.

评分

参与人数 1PB +1 收起 理由
wxcute + 1 思路不错。对于第二点,如果先定义变量,再 ...

查看全部评分

发表于 2009-4-5 15:44: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 %%i in (%str%) do cls& echo %%i
pause
发表于 2009-4-11 18:13:04 | 显示全部楼层
set str=I love,bbs;bathome.net
for %%i in (str) do ( if i==cn do  echo %%i)
发表于 2009-5-2 07:39:47 | 显示全部楼层
刚开始学,感谢楼主编写的for教程,这是我到目前为止见过的最通俗易懂的了
第一题
-----------------------------------------------------
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for  %%i in (%str%) do  echo %%i
  4. pause
复制代码
第二题
-------------------------------------------------------------------------
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for  %%i in (%str%) do cls & echo %%i
  4. pause
复制代码
发表于 2009-5-18 23:48:03 | 显示全部楼层

下面这个练习那位高手能给出正确的答案

  练习:用for语句建立test1.txt、test2.txt和test3.txt三个文本文件。
发表于 2009-5-23 11:22:29 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=3,4,5,6,7 delims=,=; " %%i in ("set str=I love,bbs;bathome.net") do (
  3. echo %%i
  4. echo %%j
  5. echo %%k
  6. echo %%l
  7. echo %%m
  8. )
  9. pause
复制代码
发表于 2009-5-31 18:19:43 | 显示全部楼层

回复 52楼 的帖子

for %%a in (text1.txt,text2.txt,text3.txt) do md %%a
发表于 2009-6-7 03:07:46 | 显示全部楼层
@echo off
for %%I in (I love,bbs;bathome.net) do echo %%I
pause
发表于 2009-6-10 00:36:46 | 显示全部楼层
A
  1. set str=l love,bbs;bathome.net
  2. 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]
发表于 2009-6-10 13:06:04 | 显示全部楼层
A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for %%a in (%str%) do echo %%a
  4. pause>nul
复制代码
A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for %%a in (%str%) do ( if "%%a"=="cn" echo %%a )
  4. pause>nul
复制代码
发表于 2009-6-10 14:25:37 | 显示全部楼层

回复 52楼 的帖子

楼主的问题都有那么多人回答了,大家的答案都大同小异。所以我也不重复回答了。下面这个是52楼朋友的答案。
如果只是单纯的用FOR而不能加参数的话可以这样:
  1. @for %%a in (1 2 3) do (cd.>test%%a.txt)
复制代码
如果可以用参数的话用/l来处理工作量比较大的很好用。
  1. @for /l %%a in (1,1,3) do (cd.>test%%a.txt)
复制代码

(另外想请问一下,为什么我在“原创代码”版块里不能发新帖呢?是我“等级”太低了还是?我是昨天注册的。)

[ 本帖最后由 zljzsmzzx 于 2009-6-10 14:31 编辑 ]
发表于 2009-6-14 14:42:51 | 显示全部楼层

回复 59楼 的帖子

请学会使用code将代码括起来
http://www.bathome.net/faq.php?action=message&id=18
发表于 2009-6-18 20:40:29 | 显示全部楼层

回复 12楼 的帖子

for %%i in (%str%) do (set a=%%i)
覆盖这个想法真不错啊!
我只想到了个if啊。
高手哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:05 , Processed in 0.024192 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表