中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 01:06
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何提取一文本中,有匹配字符的行!
楼 主 如何提取一文本中,有匹配字符的行! 发表于 2007-10-11 21:47 ·  中国 河南 郑州 联通
初级用户
积分 63
发帖 25
注册 2007-10-11 21:21
UID 99482
性别 男
状态 离线
高人救命啊!我有一文本,内容是一行一行的!我想用批处理提取文本中有相应字符的行,另存起来,并在原文本中删除这些行!不知道能否实现!
我的文本中有些行带有空格,没有其他的特殊字符!

求高人能帮忙,小弟,我万谢!
2 发表于 2007-10-11 23:10 ·  中国 浙江 杭州 电信
初级用户
积分 76
发帖 29
注册 2007-10-02 02:39
UID 98748
性别 男
状态 离线
echo off
for /f "delims=" %%a in (关键字.txt) do (
type test.txt |findstr /v "%%a" && echo %%a>>new.txt
type test.txt |findstr "%%a" && echo %%a>>new.txt
)
pause
未经测试
3 发表于 2007-10-12 21:49 ·  中国 河南 郑州 联通
初级用户
积分 63
发帖 25
注册 2007-10-11 21:21
UID 99482
性别 男
状态 离线
测试先!谢谢高人啊!
4 发表于 2007-10-14 00:12 ·  中国 河南 郑州 联通
初级用户
积分 63
发帖 25
注册 2007-10-11 21:21
UID 99482
性别 男
状态 离线
大侠不行啊!提取不出来!
我的文本内容的格式像这样子的!

111 434234 325343 432324
23543 32354 3242354 324453
43243 342323 32423 342 34
324234 324234 32423 3242

而且我最后,希望的是把提取出来的内容,再从原文本中删除的!你的代码里好象没有这样的命令吧!
5 发表于 2007-10-14 20:28 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线

m=inputbox("请输入关键字:","系统提示")
if m="" or m=false then wscript.quit
set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("test.txt")
sm=file.readall
file.close
s=split(sm,vbcrlf)
yesm=filter(s,m)
nom=filter(s,m,false)
wscript.echo "包含【" & m & "】的行:" & vbcrlf & vbcrlf & join(yesm,vbcrlf)
wscript.echo "不包含【" & m & "】的行:" & vbcrlf & vbcrlf &join(nom,vbcrlf)
6 发表于 2007-10-14 20:34 ·  中国 河南 郑州 联通
初级用户
积分 63
发帖 25
注册 2007-10-11 21:21
UID 99482
性别 男
状态 离线
谢谢这位大侠!我先测试先哦!
7 发表于 2007-10-14 21:02 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
echo off
for /f "delims=" %%a in (关键字.txt) do (
type test.txt |findstr "%%a">>包括.txt
type test.txt |findstr /v "%%a">>不包括.txt
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
kdfk123 +2 2007-10-20 20:41
8 发表于 2007-10-20 20:40 ·  中国 河南 郑州 联通
初级用户
积分 63
发帖 25
注册 2007-10-11 21:21
UID 99482
性别 男
状态 离线
Originally posted by 不得不爱 at 2007-10-14 09:02 PM:
echo off
for /f "delims=" %%a in (关键字.txt) do (
type test.txt |findstr "%%a">>包括.txt
type test.txt |findstr /v "%%a">>不包括.txt
)

果然是高人啊!一下子解决了!真是太谢谢斑竹了!万万谢啊!
9 发表于 2007-10-20 21:04 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
findstr可以直接操作文本,不用一行行……

findstr "slore" 关键字.txt>包含.txt
findstr /v "slore" 关键字.txt>不包含.txt
论坛跳转: