中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教,可以用命令提取文件的文字吗?
作者:
标题: 请教,可以用命令提取文件的文字吗? 上一主题 | 下一主题
liyanqi
新手上路





积分 12
发帖 5
注册 2007-8-3
状态 离线
『楼 主』:  请教,可以用命令提取文件的文字吗?

比如说,1.txt里有一段话是“*34234234abcd54564534*”

如何把abcd提取出来放到2.txt里

刚开始学,谢谢

2007-8-9 17:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 2 楼』:  先看看链接

http://www.cn-dos.net/forum/viewthread.php?tid=32667&fpage=1

2007-8-9 17:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liyanqi
新手上路





积分 12
发帖 5
注册 2007-8-3
状态 离线
『第 3 楼』:  

我说的不明白吗?

2007-8-9 17:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liyanqi
新手上路





积分 12
发帖 5
注册 2007-8-3
状态 离线
『第 4 楼』:  

这个贴我已经看过了,我把问题写在标题上了啊,也没有只写了什么类似高手请进之类的东西啊,我还以为你是来帮我解决问题的

2007-8-9 17:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
1112yuhua
初级用户





积分 106
发帖 44
注册 2007-6-1
状态 离线
『第 5 楼』:  

@echo off & setlocal enaabledelayedexpansion
for /f %%a in (1.txt) do (
    set var=%%i
    @ echo !var:~9,4!>>2.txt
)
以上不知是否可以,我也是刚开始学的,互相学习,哈哈。

[ Last edited by 1112yuhua on 2007-8-9 at 08:25 PM ]

2007-8-9 20:23
查看资料  发送邮件  发短消息 网志  OICQ (463675828)  编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 6 楼』:  

@echo off & setlocal enaabledelayedexpansion

for /f "delims=1,2,3,4,5,6,7,8,9,10,*" %%a in (b:\1.txt) do echo %%a >>b:\2.txt


1.txt

*34234234abcd54564534*

2007-8-10 03:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liyanqi
新手上路





积分 12
发帖 5
注册 2007-8-3
状态 离线
『第 7 楼』:  

六楼的朋友可以实现,呵呵,多谢了

2007-8-10 09:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




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

六楼的代码无需启用变量延迟,另外,429499381不够细心,^_^照搬了楼的@echo off & setlocal enaabledelayedexpansion

顺便灌一水
将将横向排列的字符纵向显示
@echo off
set var=*34234234abcd54564534*
set num=0
:loop
<nul set/p=%%var:~%num%,1%%|findstr .*
rem 本可以用echo,但是考虑到空行输出,改为set/p
rem 如果想只显示字母,用|findstr [a-z]
set/a num+=1
goto loop
[ Last edited by ccwan on 2007-8-10 at 09:19 AM ]



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-8-10 09:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liyanqi
新手上路





积分 12
发帖 5
注册 2007-8-3
状态 离线
『第 9 楼』:  

果然是金牌,呵呵,十分感谢
如果文件中的文字是:s1234df<a>sadfasdf/34<34a53>45sdf<a/>234sd

如何提取<a>sadfasdf/34<34a53>45sdf<a/>这段文字

就是提取<a>和<a/>之间的任意字符

[ Last edited by liyanqi on 2007-8-10 at 10:50 AM ]

2007-8-10 10:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wjh6088
初级用户





积分 85
发帖 39
注册 2007-6-28
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by ccwan at 2007-8-10 09:17 AM:
六楼的代码无需启用变量延迟,另外,429499381不够细心,^_^照搬了楼的@echo off & setlocal enaabledelayedexpansion

顺便灌一水
将将横向排列的字符纵向显 ...

呵呵,这个水好,谢谢了

2007-8-10 13:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
429499381
中级用户





积分 452
发帖 202
注册 2006-12-21
状态 离线
『第 11 楼』:  

哈哈, 谢谢八楼的提醒, 好久没来了  , 关于变量延迟又搞忘了, 我但是就是想

加上去有结果就行, 没多细想!!!

2007-8-10 14:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by liyanqi at 2007-8-10 10:49:
果然是金牌,呵呵,十分感谢
如果文件中的文字是:s1234df<a>sadfasdf/34<34a53>45sdf<a/>234sd

如何提取<a>sadfasdf/34<34a53>45sdf<a/>这 ...

用sed命令行工具,自己搜索一下。
sed "s/.*\(<a>.*<a\/>\).*/\1/"


2007-8-12 09:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: