中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 21:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一批处理从文本文件里提取字符
16 发表于 2006-12-26 06:12 ·  中国 江苏 南京 电信
高级用户
★★
积分 623
发帖 214
注册 2006-09-22 20:48
UID 63387
状态 离线
我试过了,www.txt文件里的内容就一行的,没有换行,难怪我试了好多都不正确.我弄一小段文件回车后用ccwan的代码可以,误差有一点.
如不回车,就这么长的一行有办法提取出来.htm结尾的么,用第三方工具也行,大家没事了想想怎么才能做到,呵呵.......
QQ:419503077
17 发表于 2006-12-26 06:27 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +5 2006-12-26 21:49
18 发表于 2006-12-26 06:30 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
呵呵,sed awk解决文字很容易了
19 发表于 2006-12-26 06:54 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
没看懂。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
20 发表于 2006-12-26 10:21 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线
找了半天,没找到文件的规律~
21 发表于 2006-12-26 21:17 ·  中国 辽宁 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线
'终于找到了解决方法,把下面的代码存为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 ]
本帖最近评分记录 (共 3 条) 点击查看详情
评分人分数时间
namejm +4 2006-12-26 21:44
tianzizhi +4 2006-12-26 23:10
lxmxn +4 2006-12-27 02:14
22 发表于 2006-12-26 21:31 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  按照你的提示,把www.txt和那个vbs放在同一目录下操作,但是还是出错了。
附件
出错.JPG
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
23 发表于 2006-12-26 21:36 ·  中国 辽宁 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线
晕~~
我试了多遍都没有问题,你要处理的文件名是不是www.txt?

如果还不行你可以试一下,把www.txt改成11.txt之后把vbs里的www.txt也改成11.txt看看行不行.
24 发表于 2006-12-26 21:42 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  犯了个低级错误:复制代码的时候,把最开始的 ' 漏掉了。建议把代码部分用 [code] 和 [/code] 括起来,以方便别人的复制。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
25 发表于 2006-12-26 23:13 ·  中国 江苏 南京 电信
高级用户
★★
积分 623
发帖 214
注册 2006-09-22 20:48
UID 63387
状态 离线
vbs确实厉害,不过现在还不能去学它,现在还要学我的c,以后试着用c解决我遇到的问题.
QQ:419503077
26 顶起陈年老贴,来迟了,呵呵 发表于 2009-04-12 08:55 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
UID 135147
性别 男
来自 广西
状态 离线
@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


来一个纯批的!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
asnahu +2 2009-06-23 13:04
精简
=> 个人网志
27 发表于 2009-04-12 09:20 ·  中国 湖北 黄石 阳新县 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
UID 53823
性别 男
来自 湖北
状态 离线
我怎么下不了附件!~~~
28 发表于 2009-04-12 09:50 ·  中国 湖北 黄石 阳新县 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
UID 53823
性别 男
来自 湖北
状态 离线
来个混血的
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+(\d+\.htm)/g,"$1\r\n");
fl.write(sss);
论坛跳转: