中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一批处理从文本文件里提取字符
« [1] [2] »
作者:
标题: 求一批处理从文本文件里提取字符 上一主题 | 下一主题
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『第 16 楼』:  

我试过了,www.txt文件里的内容就一行的,没有换行,难怪我试了好多都不正确.我弄一小段文件回车后用ccwan的代码可以,误差有一点.
如不回车,就这么长的一行有办法提取出来.htm结尾的么,用第三方工具也行,大家没事了想想怎么才能做到,呵呵.......



QQ:419503077
2006-12-26 06:12
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 17 楼』:  

sed "s/htm/\n/" life|sed "/.htm/!d"|sed "s/.* 200/200/;s/.htm.*/.htm/"|more>a.txt
type a.txt
pause>nul

[ Last edited by vkill on 2006-12-26 at 06:35 AM ]

   此帖被 +5 点积分      点击查看详情   
评分人:【 redtek 分数: +5  时间:2006-12-26 21:49


2006-12-26 06:27
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 18 楼』:  

呵呵,sed awk解决文字很容易了

2006-12-26 06:30
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 19 楼』:  

没看懂。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-26 06:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 20 楼』:  

找了半天,没找到文件的规律~

2006-12-26 10:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 21 楼』:  

'终于找到了解决方法,把下面的代码存为VBS
'你要处理的文件www.txt和这个VBS文件一定要在一个目录.
on error resume next
set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("www.txt",1)
a=file.readall
file.close
i=0
do
  i=instr(i+1,a,".htm")
if i<>0 then b=b & mid(a,i-12,16)& vbcrlf
loop  until i=0
set file=fso.createtextfile("222.txt")
file.write b
file.close
msgbox "文件处理完毕,请查看222.txt文件",48+4096,"操作成功"
[ Last edited by jmz573515 on 2006-12-26 at 08:44 AM ]

   此帖被 +12 点积分     点击查看详情   
评分人:【 namejm 分数: +4  时间:2006-12-26 21:44
评分人:【 tianzizhi 分数: +4  时间:2006-12-26 23:10
评分人:【 lxmxn 分数: +4  时间:2006-12-27 02:14


2006-12-26 21:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


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

  按照你的提示,把www.txt和那个vbs放在同一目录下操作,但是还是出错了。

附件 1: 出错.JPG (2006-12-26 21:31, 9.48 K, 下载附件所需积分 1 点 ,下载次数: 6)




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




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 23 楼』:  

晕~~
我试了多遍都没有问题,你要处理的文件名是不是www.txt?

如果还不行你可以试一下,把www.txt改成11.txt之后把vbs里的www.txt也改成11.txt看看行不行.

2006-12-26 21:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


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

  犯了个低级错误:复制代码的时候,把最开始的 ' 漏掉了。建议把代码部分用 [code] 和 [/code] 括起来,以方便别人的复制。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-26 21:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『第 25 楼』:  

vbs确实厉害,不过现在还不能去学它,现在还要学我的c,以后试着用c解决我遇到的问题.



QQ:419503077
2006-12-26 23:13
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 26 楼』:  顶起陈年老贴,来迟了,呵呵


@echo off&setlocal enabledelayedexpansion
set "t="
(for /f "tokens=*" %%a in (www.txt) do (set "str=!t!%%a"&set "t=%%a"&call :sub !str!))>dest.txt
start dest.txt
pause
goto :eof
:sub
if /i "%~x1"==".htm" echo %1
shift
if not "%1"=="" goto :sub
set t=!t:.htm=!
goto :eof
来一个纯批的!

   此帖被 +2 点积分    点击查看详情   
评分人:【 asnahu 分数: +2  时间:2009-6-23 13:04




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-4-12 08:55
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 27 楼』:  

我怎么下不了附件!~~~

2009-4-12 09:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 28 楼』:  

来个混血的
more +4 "%~f0">#js.js
cscript /nologo #js.js 文件.txt
goto:eof
:::::::::::::::::::::::
File_Path=WScript.arguments(0);
var fso=new ActiveXObject("scripting.filesystemobject");
var fl=fso.opentextfile(File_Path,1);
var sss=fl.readall();
var fl=fso.opentextfile(File_Path+"_处理后.txt",2,1);
sss=sss.replace(/[\s\S]*?\s+(\d+\.htm)/g,"$1\r\n");
fl.write(sss);


2009-4-12 09:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: