中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 17:08
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]提取文本中特定内容并且过滤相同的内容
可打印版本  730 / 2
第1楼 Dana 发表于 2008-04-24 15:32
初级用户 发帖 28 积分 70
[求助]提取文本中特定内容并且过滤相同的内容
<BATCH>
<FACTORY TESTER="BFT5" />
<PRODUCT />
<REFS />
<PANEL>
<SN ID="D410978185512" STATUS="Failed" TIMESTAMP="2008-04-21 00:16:08" TESTTIME="150.275000">
<GROUP NAME="" TIMESTAMP="" STATUS="Failed" >
<TEST NAME="" VALUE="" STATUS="Failed" DESCRIPTION="" FAILURECODE="BAATOK" />
</GROUP>
</SN>
</PANEL>
</BATCH>
4/21/2008 12:16:08 AM <?xml version="1.0"?><ITEM><FACTORY NAME="" TESTER="BFT5" FIXTURE="" USER="" /><PANEL ID="" COMMENT="" RUNMODE="" TIMESTAMP="" TESTTIME="" WAITTIME="" STATUS="" /><SN ID="D410978185512" UID="1" STATUS="Failed" TIMESTAMP="2008-04-21 00:16:08" TESTTIME="150.275000" ENDTIME="" PANELIDX="" SOCKET="" COMMENT="" /><GROUP UID="1" SN="1" PARENT="" DESCR="" NAME="" STEPGROUP="" GROUPIDX="" LOOPIDX="" TYPE="" RESOURCE="" MODULETIME="" TOTALTIME="" TIMESTAMP="" STATUS="Failed" COMMENT="" /><TEST NAME="" SN="1" GROUP="1" STATUS="Failed" UNIT="" VALUE="" RULE="" TARGET="" DATATYPE="" FAILURECODE="BAATOK" /></ITEM>
4/21/2008 12:17:55 AM Slave Server=172.30.192.6
4/21/2008 12:17:55 AM CLASS INIT OK
4/21/2008 12:17:55 AM <?xml version="1.0" encoding="ISO-8859-1" ?>


以上是文本中的一部分,文本是不断递增的,递增内容与上面格式相同。不同的是SN ID="D410978185512的值,时间的值不一样。
现在想提取文本中所有 SN ID=的值D410978185512 写入 SN.txt文件,但是内容 SN ID="D410978185512" 会出现两次,而且SN ID 中间包含一个空格,见红色字体。我只需要一条记录写入到SN.txt 中,忽略一个。还请大家给个思路。
第2楼 terse 发表于 2008-04-24 16:04
银牌会员 发帖 946 积分 2,404
@echo off
for /f "tokens=3 delims==< " %%i in ('type 1.txt ^|findstr /i "^SN ID="') do if not defined str set str=A&echo %%i&pause
第3楼 Dana 发表于 2008-04-24 17:26
初级用户 发帖 28 积分 70
多谢,问题解决了,刚刚的回帖不小心删除了。

可否能用 sed 或 grep 命令实现?
再次感谢 Terse
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023