中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 用批处理如何抽取文本的的行数
作者:
标题: 用批处理如何抽取文本的的行数 上一主题 | 下一主题
chainliq
高级用户

学无尽止


积分 635
发帖 244
注册 2006-4-15
来自 广西贵港
状态 离线
『楼 主』:  用批处理如何抽取文本的的行数

有一文本的内容如下:
87695494----1234565287145532
85467769----254585452
80366483----665322525
84693672----4445875
80319820----55889654


如何写个批处理:运行的时候,只要就输入87695494  
就显示文本中87695494“----”后面的内容:1234565287145532
呵呵,因为我对抽取这方面的内容不是很懂,如果用:rem  的话,又好麻烦呀!

请各位帮忙哦

附件 1: {3F737E6B-456F-4486-AD21-B0DFB7B8C4BC}.BMP (2006-11-20 10:23, 25.22 K, 下载附件所需积分 1 点 ,下载次数: 3)


2006-11-20 08:23
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (86682419)  编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 2 楼』:  

@echo off&setlocal
set/p a=enter:
for /f "tokens=1,2 delims=-" %%a in ('findstr "%a%" test.txt') do echo %%b



我今后在论坛的目标就是做个超级坏人!!!
2006-11-20 08:54
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
chainliq
高级用户

学无尽止


积分 635
发帖 244
注册 2006-4-15
来自 广西贵港
状态 离线
『第 3 楼』:  

9527 兄弟的这个,在XP系统中可以运行,可是在2000系统中显示无法打开呀,还有别的方法吗?而我用的是2000系统呀!如上图

[ Last edited by chainliq on 2006-11-20 at 10:24 AM ]

2006-11-20 10:22
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (86682419)  编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 4 楼』:  

把findstr换成find试试。
如果文件不大的话,也可以尝试一下下面的方案:
@echo off
setlocal ENABLEDELAYEDEXPANSION
    for /f "delims=- tokens=1,2" %%i in (test.txt) do set %%i=%%j
    set /p str=输入内容:
    echo !%str%!
pause
上面的脚本同样测试于XP中。

2006-11-20 13:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tao0610
高级用户

朦胧的世界


积分 579
发帖 218
注册 2006-10-24
状态 离线
『第 5 楼』:  


@echo off
set /p str= 输入:
for /f "delims=- tokens=1*" %%i in (1.txt) do if %%i==%str% echo %%j
pause>nul


2006-11-20 14:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chainliq
高级用户

学无尽止


积分 635
发帖 244
注册 2006-4-15
来自 广西贵港
状态 离线
『第 6 楼』:  

那显示完成后就删除显示那一行,如:87695494----1234565287145532
显示完:1234565287145532  后,删除这一行:87695494----1234565287145532
该怎么改呢!

2006-11-21 18:40
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (86682419)  编辑帖子  回复  引用回复
nanhui112
初级用户





积分 127
发帖 59
注册 2007-11-13
状态 离线
『第 7 楼』:  

@echo off
set /p  a=enter:
for /f "delims=- tokens=1,2" %%a in (1.txt) do if %%a==%a% echo %%b
echo 删除这行吗,(Y/N)
set /p del=
if /i not "%del%“=="Y”  goto :eof  
for /f %%i in ('findstr /v ^%a%.* "1.txt"') do >2.txt echo %%i
echo 删除完毕。
pause>nul &exit

2008-1-6 20:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: