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

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

[复制链接]
发表于 2011-8-3 16:16:48 | 显示全部楼层
lz 的意思是A1 题,“请分别显示出I、love、bbs、bathome和net这五个字符串。” 我理解的意思是分别显示这五格字符串,比如是:
I
love
bbs
bathome
net

怎么大家的答案显示的各种各样了?
大多都是这个答案。审题有问题吧?
love
bbs
bathome.net
发表于 2011-8-3 22:59:54 | 显示全部楼层
A2
  1. @echo off
  2. title FOR
  3. set str=I love,bbs;bathome net
  4. for %%i in (%str%) do if "%%i"=="net" echo %%i
  5. pause >nul
复制代码
发表于 2011-8-5 14:53:35 | 显示全部楼层
做A1时想到一个问题,刚开始是我理解错题,理解为要求这样显示 I、love、bbs、bathome、net
但str=I love,bbs;bathome.net  问题就是 delims一旦指定了其它字符,怎么再去指定空格字符,想了好久怎么也不能把I love分开提取出来(要和另外的一起提取)
发表于 2011-8-5 16:18:25 | 显示全部楼层
请楼主继续发好贴,支持你
发表于 2011-9-22 21:04:02 | 显示全部楼层
本帖最后由 aber02zzl 于 2011-9-22 21:17 编辑

第一题答案:

  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. pause
复制代码
第二题答案:

  1. @echo off
  2. set str= I love,bbs;bathome.net
  3. for /f "tokens=5 delims=,.; " %%a  in ("%str%") do echo %%a
  4. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
cjiabing + 1 很好。

查看全部评分

发表于 2011-9-23 01:19:44 | 显示全部楼层
本帖最后由 brim 于 2011-9-23 01:21 编辑

A1-1
  1. @echo off
  2. set str=I love,bbs;bathome.net
  3. for %%i in (%str%) do echo %%i
  4. pause
复制代码
bathome.net不能分开但能够达到目的:了解for语句用到了哪些符号作为元素的分隔符。
A1-2
  1. @echo off
  2. set "str=I love,bbs;bathome.net,"
  3. for /f "tokens=1-5 delims=,;. " %%I in ("%str%") do echo %%I&echo %%J&echo %%K&echo %%L&echo %%M
  4. pause
复制代码
能够分开所有但不能达到目的。

A2
  1. @echo off
  2. set "str=I love,bbs;bathome.net,"
  3. for /f "tokens=5 delims=,;. " %%I in ("%str%") do echo %%I
  4. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
cjiabing + 1 理解

查看全部评分

发表于 2011-11-12 02:38:45 | 显示全部楼层
回复 186# Hello123World


    还是版主NB
发表于 2011-11-12 02:50:25 | 显示全部楼层
回复 187# zxd11097


    set "a=%str:.==% 是什么意思
发表于 2011-11-12 10:52:53 | 显示全部楼层
回复 195# victory2589


把.替换成=
发表于 2011-11-17 14:26:06 | 显示全部楼层
本帖最后由 yllzl 于 2011-11-17 14:27 编辑

在网上搜资料,无意间到到了这个论坛,无意间看到这个帖子
然后……
看来两百多个帖子,只有一个半人达到要求
悲剧啊

  1. @echo off
  2. set "str=I love,bbs;bathome.net"
  3. set a=%str:.= %
  4. for %%i in (%a%) do echo %%i
  5. pause>nul
复制代码
  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%
  6. pause>nul
复制代码

评分

参与人数 1PB +6 收起 理由
cjiabing + 6 虽然用了set替换,但不是很符合出题要求,未 ...

查看全部评分

发表于 2011-11-17 14:42:24 | 显示全部楼层
  1. set str=I love,bbs;bathome.net
  2. for /f "tokens=1-5 delims=,;. " %%a in ("%str%") do echo %%a %%b %%c %%d %%e
  3. pause
复制代码
  1. set str=I love,bbs;bathome.net
  2. for /f "tokens=3  delims=. " %%a in ("%str%") do echo %%a
  3. pause
复制代码
不好意思啊。  修改了一下别人的代码 至少我是这么思考这个问题  最终这个结果。

评分

参与人数 1技术 +1 收起 理由
cjiabing + 1 可以。中规中矩,显示全句也可以用tokens=*

查看全部评分

发表于 2012-2-24 20:13:35 | 显示全部楼层
.不是分隔符啊!不用开关没法显示.
发表于 2012-2-24 20:17:34 | 显示全部楼层

  1. for %%i in (I love,bbs;bathome,net) do echo %%i>>1.txt
复制代码


  1. for %%i in (I love,bbs;bathome,net) do set /a=%%i
  2. echo %a%>>2.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
cjiabing + 1 嗯,思路开,很好,一般打练习就不用打 >> ...

查看全部评分

发表于 2012-2-24 23:18:47 | 显示全部楼层
回复 197# yllzl

为什么是悲剧呢?刚学习都有做不对的时候,做错了还可以再来嘛!~
你的思路也可以,只是这里是For练习,最好用一个for来解决。
发表于 2012-2-24 23:26:15 | 显示全部楼层
回复 190# zaixinxiangnian


    "delims="   表示保留空格,也就是不以空格分隔。
    "delims=  "   表示去掉空格,用空格来分隔,通常其他分隔符放在空格前,如:"delims=.,:/   "
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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