中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 用for和if命令判断文本 上一主题 | 下一主题
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『楼 主』:  用for和if命令判断文本

a.txt中的内容
f:\111\abc\rty\ddfd\rr.txt
f:\111\abc\hj\wed\fr4.txt
f:\111\abc\rjhy\tyu\ksf\hjy7.txt
f:\111\abc\gjy\uio\7ufg.txt
f:\111\abc\tuy\iyd.txt
f:\111\abc\riop\sew\mjk.txt
f:\111\abc\rr.txt

目的:想用for命令循环a.txt的内容以\作分隔符,将1,2,3,4,5,6,部分复制到b.txt中.每一行中没有6部分和大于6部分的行都不要.也就是说想用if命令判断每一行,有1,2,3,4,5,6,例的就复制到b.txt中发现有多余6例或不足6例的就忽略.
这样说清楚吗?

[ Last edited by namejm on 2006-12-20 at 10:02 PM ]

2006-12-20 11:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  以下为演示代码,如果满意,在 echo 语句后加上重定向部分就可以了。考虑到路径中可能带空格及特殊字符,所以用引号把每条路径括起来了,如果没有我所说的情况,可以把引号去掉:
@echo off
for /f "tokens=1-6* delims=\" %%i in (a.txt) do call :pick-up "%%i" "%%j" "%%k" "%%l" "%%m" "%%n" "%%o"
pause
goto :eof

:pick-up
if %6=="" goto :eof
if not %7=="" goto :eof
set "var=%1\%2\%3\%4\%5\%6"
echo "%var:"=%"
goto :eof




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-20 12:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 3 楼』:  

namejm 先谢了,
还有请问一句,代码里有好几个跳转到标签eof,我怎么没看到eof的标签呢?
见笑了,我很喜欢批处理,可又没人教,呵呵..........麻烦你了.

[ Last edited by 26933062 on 2006-12-20 at 05:06 PM ]

2006-12-21 05:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 4 楼』:  

GOTO  /? 命令的帮助中带有 :eof 的解释~:)

  Quote:
GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前
批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的
办法。有关能使该功能有用的 CALL 命令的扩展描述,请键入
CALL /?。





    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-21 06:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 5 楼』:  

还是没看懂,我可以理解为运行goto :eof 这句时就退出批处理吗?

2006-12-21 09:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  


  如果在标签里面,goto :eof 就是跳出当前的标签脚本体,继续执行下面的命令。
  如果不在标签里面,一般是直接跳出批处理。


2006-12-21 11:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lisiyuan
初级用户





积分 21
发帖 28
注册 2006-12-15
状态 离线
『第 7 楼』:  

学习了

2006-12-21 11:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: