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

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

[复制链接]
发表于 2012-4-20 18:14:05 | 显示全部楼层
小菜也来贴下代码:
A1:
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for %%i in (%str:.= %) do echo %%i
  4. pause>Nul
复制代码
另外带/f开关的
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for /f "tokens=1-5 delims=,;. " %%a in ("%str%") do echo %%a %%b %%c %%d %%e
  4. rem 如果不加tokens=1-5,则默认输出第一列.
  5. pause
复制代码
===============================================================
A2:
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for %%i in (%str:*.= %) do echo %%i
  4. pause>Nul
复制代码

评分

参与人数 1技术 +1 收起 理由
cjiabing + 1 可以。

查看全部评分

发表于 2012-7-26 17:11:47 | 显示全部楼层
这个教程非常好,感谢楼主
发表于 2012-8-28 12:02:04 | 显示全部楼层
嗯,至今没搞清楚cn是什么意思,所给字符串set str=I love,bbs;bathome.net并无此字符串(初学,请指教!)
发表于 2012-8-28 12:24:22 | 显示全部楼层
看了你给的答案,我菜明白,你所说的显示cn是说显示str=I love,bbs;bathome.net字符串中的bathome.net呀!是么?
如果是这样,你看下面的代码能不能符合A2题目的要求:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do (cls&echo %%i)
pause>nul
发表于 2012-10-17 18:34:10 | 显示全部楼层
A1:

  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for %%a in (%str%) do (goto main)
  4. :main
  5. set str1=%str:~0,1%
  6. set str2=%str:~2,4%
  7. set str3=%str:~7,3%
  8. set str4=%str:~11,7%
  9. set str5=%str:~19,3%
  10. echo %str1% %str2% %str3% %str4% %str5%
  11. pause
复制代码
A2:

  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for %%a in (%str%) do (goto main)
  4. :main
  5. set str1=%str:~19,3%
  6. echo %str1%
  7. pause
复制代码
发表于 2013-4-9 16:10:54 | 显示全部楼层
回复 12# akiraakito


    结果不正确呀,因为“.”不是分隔符,怎么可能出来单独存在的net呢?
发表于 2013-4-9 16:14:12 | 显示全部楼层
A1:
  1. @echo off
  2. set a=I love,bbs;bathome. net
  3. for %%I in (%a%) do echo %%I
  4. pause
复制代码
A2:
  1. @echo off
  2. set a=I love,bbs;bathome. net
  3. for %%I in (%a%) do (set a=%%I)
  4. echo %a%
  5. pause
复制代码
发表于 2013-4-9 16:19:59 | 显示全部楼层
这样应该更严谨一些:
A1
  1. @echo off
  2. set a=I love,bbs;bathome.net
  3. set v=%a:.= %
  4. for %%I in (%V%) do echo %%I
  5. pause
复制代码
A2
  1. @echo off
  2. set a=I love,bbs;bathome.net
  3. set v=%a:.= %
  4. for %%I in (%v%) do (set s=%%I)
  5. echo %s%
  6. pause
复制代码
发表于 2013-7-1 11:38:12 | 显示全部楼层
回复 52# wxlh2002

@echo off
set str=1 2 3
for %%i in (%str%) do echo test>%%i.txt
pause
发表于 2013-7-9 15:42:39 | 显示全部楼层
回复 2# jellyhk


    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>nul

A2:
@echo off
set str= I love,bbs;bathome.net
for /f "tokens=5 delims=,;. "  %%a in ("%str%") do echo %%a
@pause>nul
发表于 2013-7-14 21:51:57 | 显示全部楼层
A2
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do set a=%%i
echo %a%
pause

这样做的话,最后显示的是bathome.net,是因为“.”没有分隔符的作用吗?那应该怎么才能符合要求的显示net呢?
发表于 2013-7-14 22:14:13 | 显示全部楼层
用for语句建立test1.txt、test2.txt和test3.txt三个文本文件
@echo off
for %%a in (text1,text2,text3) do echo %%a>%%a.txt
pause
发表于 2013-7-26 16:26:59 | 显示全部楼层
看到回复的贴几乎都是代码,我只能慢慢学习了
发表于 2013-8-16 16:35:35 | 显示全部楼层
A1
  1. @echo off
  2. set str=I LOVE,bbs;bathome.net,
  3. set a=%str:.=,%
  4. for %%i in (%a%)do echo %%i
复制代码
A2
  1. @echo off
  2. set str=I LOVE,bbs;bathome.net,
  3. set a=%str:.=,%
  4. for %%i in (%a%)do set b=%%i
  5. echo %b%
复制代码
呜呜 才知道变量可以这样用。。
发表于 2013-8-19 15:02:16 | 显示全部楼层
我觉得你既然贴上来code就要自己测试一下可行性,否则是不是要误人子弟呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 03:54 , Processed in 0.018386 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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