中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 11:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教,可以用命令提取文件的文字吗? 查看 880 回复 11
楼 主 请教,可以用命令提取文件的文字吗? 发表于 2007-08-09 17:04 ·  中国 上海 联通
新手上路
积分 12
发帖 5
注册 2007-08-03 10:17
19年会员
UID 94561
性别 男
状态 离线
比如说,1.txt里有一段话是“*34234234abcd54564534*”

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

刚开始学,谢谢
2 先看看链接 发表于 2007-08-09 17:13 ·  中国 四川 绵阳 电信
高级用户
★★★
积分 502
发帖 327
注册 2006-12-30 06:01
19年会员
UID 74981
性别 男
状态 离线
3 发表于 2007-08-09 17:19 ·  中国 上海 联通
新手上路
积分 12
发帖 5
注册 2007-08-03 10:17
19年会员
UID 94561
性别 男
状态 离线
我说的不明白吗?
4 发表于 2007-08-09 17:23 ·  中国 上海 联通
新手上路
积分 12
发帖 5
注册 2007-08-03 10:17
19年会员
UID 94561
性别 男
状态 离线
这个贴我已经看过了,我把问题写在标题上了啊,也没有只写了什么类似高手请进之类的东西啊,我还以为你是来帮我解决问题的
5 发表于 2007-08-09 20:23 ·  中国 陕西 西安 电信
初级用户
积分 106
发帖 44
注册 2007-06-01 22:25
19年会员
UID 90001
性别 男
状态 离线
@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 ]
6 发表于 2007-08-10 03:43 ·  中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
19年会员
UID 74161
性别 女
状态 离线
@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*
7 发表于 2007-08-10 09:09 ·  中国 上海 联通
新手上路
积分 12
发帖 5
注册 2007-08-03 10:17
19年会员
UID 94561
性别 男
状态 离线
六楼的朋友可以实现,呵呵,多谢了
8 发表于 2007-08-10 09:17 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
六楼的代码无需启用变量延迟,另外,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
set/a num+=1
goto loop


[ Last edited by ccwan on 2007-8-10 at 09:19 AM ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
9 发表于 2007-08-10 10:49 ·  中国 上海 联通
新手上路
积分 12
发帖 5
注册 2007-08-03 10:17
19年会员
UID 94561
性别 男
状态 离线
果然是金牌,呵呵,十分感谢
如果文件中的文字是: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 ]
10 发表于 2007-08-10 13:10 ·  中国 广西 南宁 电信
初级用户
积分 85
发帖 39
注册 2007-06-28 22:22
19年会员
UID 92624
性别 男
状态 离线
Originally posted by ccwan at 2007-8-10 09:17 AM:
六楼的代码无需启用变量延迟,另外,429499381不够细心,^_^照搬了楼的@echo off & setlocal enaabledelayedexpansion

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

呵呵,这个水好,谢谢了
11 发表于 2007-08-10 14:41 ·  中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
19年会员
UID 74161
性别 女
状态 离线
哈哈, 谢谢八楼的提醒, 好久没来了 , 关于变量延迟又搞忘了, 我但是就是想

加上去有结果就行, 没多细想!!!
12 发表于 2007-08-12 09:28 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
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/"
论坛跳转: