标题: 用for和if命令判断文本
[打印本页]
作者: 26933062
时间: 2006-12-20 11: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 ]
作者: namejm
时间: 2006-12-20 12:41
以下为演示代码,如果满意,在 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
作者: 26933062
时间: 2006-12-21 05:56
namejm 先谢了,
还有请问一句,代码里有好几个跳转到标签eof,我怎么没看到eof的标签呢?
见笑了,我很喜欢批处理,可又没人教,呵呵..........麻烦你了.
[
Last edited by 26933062 on 2006-12-20 at 05:06 PM ]
作者: redtek
时间: 2006-12-21 06:19
GOTO /? 命令的帮助中带有 :eof 的解释~:)
Quote: |
GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前
批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的
办法。有关能使该功能有用的 CALL 命令的扩展描述,请键入
CALL /?。 |
|
作者: 26933062
时间: 2006-12-21 09:45
还是没看懂,我可以理解为运行goto :eof 这句时就退出批处理吗?
作者: lxmxn
时间: 2006-12-21 11:28
如果在标签里面,goto :eof 就是跳出当前的标签脚本体,继续执行下面的命令。
如果不在标签里面,一般是直接跳出批处理。
作者: lisiyuan
时间: 2006-12-21 11:45
学习了