Board logo

标题: 如何提取一文本中,有匹配字符的行! [打印本页]

作者: kdfk123     时间: 2007-10-11 21:47    标题: 如何提取一文本中,有匹配字符的行!

高人救命啊!我有一文本,内容是一行一行的!我想用批处理提取文本中有相应字符的行,另存起来,并在原文本中删除这些行!不知道能否实现!
我的文本中有些行带有空格,没有其他的特殊字符!

求高人能帮忙,小弟,我万谢!
作者: guixi     时间: 2007-10-11 23:10
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
未经测试
作者: kdfk123     时间: 2007-10-12 21:49
测试先!谢谢高人啊!
作者: kdfk123     时间: 2007-10-14 00:12
大侠不行啊!提取不出来!
我的文本内容的格式像这样子的!

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

而且我最后,希望的是把提取出来的内容,再从原文本中删除的!你的代码里好象没有这样的命令吧!
作者: jmz573515     时间: 2007-10-14 20:28
CODE:  [Copy to clipboard]
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)

作者: kdfk123     时间: 2007-10-14 20:34
谢谢这位大侠!我先测试先哦!
作者: 不得不爱     时间: 2007-10-14 21:02
echo off
for  /f "delims=" %%a in (关键字.txt) do (
type test.txt |findstr  "%%a">>包括.txt
type test.txt |findstr /v "%%a">>不包括.txt
)
作者: kdfk123     时间: 2007-10-20 20:40


  Quote:
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
)

果然是高人啊!一下子解决了!真是太谢谢斑竹了!万万谢啊!
作者: slore     时间: 2007-10-20 21:04
findstr可以直接操作文本,不用一行行……

findstr  "slore" 关键字.txt>包含.txt
findstr /v "slore" 关键字.txt>不包含.txt




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5