中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 07:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]从文本文件中抽取特征字串 查看 778 回复 5
楼 主 [已结]从文本文件中抽取特征字串 发表于 2008-11-12 14:48 ·  中国 吉林 长春 联通
初级用户
积分 50
发帖 40
注册 2008-01-14 05:56
18年会员
UID 108541
性别 男
状态 离线
高手的代码,炉火纯青!

文本文件,名为:a.txt,其内容如下:
a sig1
b sig3
c sig2
e sig1
f sig3
g sig3
h sig1
i sig2

我现在要得到这样的结果:
sig1: a e h
sig2: c i
sig3: b f g
==
注意:这个文本文件的sig字符并不知道具体是什么,也不知道数量有多少个。但格式肯定是一个字母+一个空格+特征字符。

谢谢!

[ Last edited by victor888 on 2008-11-12 at 19:14 ]
2 发表于 2008-11-12 15:48 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
应该是需要外部工具了

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
3 发表于 2008-11-12 15:56 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-2 delims= " %%a in (a.txt) do (
if not defined var_%%b (
set var_%%b=%%a
) else (
set var_%%b=!var_%%b! %%a
)
)
for /f "tokens=2-3 delims=_=" %%a in ('set var_') do (
echo.%%a: %%b
)
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
tireless +1 2008-11-12 16:49
4 发表于 2008-11-12 16:35 ·  中国 辽宁 大连 联通
初级用户
积分 34
发帖 11
注册 2006-12-19 03:37
19年会员
UID 73911
性别 男
状态 离线
楼上 正解
5 发表于 2008-11-12 16:58 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2" %%a in (a.txt) do (
set sig_%%b=!sig_%%b!%%a
)
for /f "delims=_= tokens=2,3" %%a in ('set sig_') do (
echo %%a: %%b
)
pause


————————————————————————————————————

3 楼的 set var_%%b=%%a 用得真好,我原来写的是 set %%b=!%%b!%%a ,没有加前缀,这样就无法在 set 里面找出来。

[ Last edited by tireless on 2008-11-12 at 17:04 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2008-11-12 17:02
6 发表于 2008-11-12 16:59 ·  中国 上海 静安区 电信
新手上路
积分 8
发帖 8
注册 2008-11-06 21:06
17年会员
UID 130216
性别 男
状态 离线
路过,学习下
论坛跳转: