标题: 请教大家关于文本提取问题。(提取多值且位置不固定)
[打印本页]
作者: Dana
时间: 2008-6-20 14:19
标题: 请教大家关于文本提取问题。(提取多值且位置不固定)
4/21/2008 12:17:55 AM Slave Server=192.168.1.2
4/21/2008 12:17:55 AM OK
4/21/2008 12:17:55 AM <?xml version="1.0" testprogram" ?>
<BATCH>
<FACTORY TESTER="
TEST5" />
<PRODUCT />
<REFS />
<PANEL>
<DUT ID="
D410778444512" STATUS="
Passed" TIMESTAMP="
2008-04-21 00:17:55" TESTTIME="60.547000">
</DUT>
</PANEL>
</BATCH>
4/21/2008 12:17:55 AM <?xml version="1.0"?>< TEST="" TESTER="TEST5" FIXTURE="" USER="" /><PANEL ID="" COMMENT="" RUNMODE="" TIMESTAMP="" TESTTIME="" WAITTIME="" STATUS="" /><DUT ID="D410778444512" UID="1" STATUS="Passed" TIMESTAMP="2008-04-21 00:17:55" TESTTIME="60.547000" ENDTIME="" PANELIDX="" SOCKET="" COMMENT="" />
上面是文本一部分内容内容,现在的想法是可以一次将上面红色字体提取后写入另一个TXT文件中,,以便做分析,但是如何实现提取,还请大家帮忙看看,多谢。
作者: bat-zw
时间: 2008-6-20 15:20
楼主凑合用吧,又简化了下:
@echo off
for /f "tokens=3,5,7,8 delims==/> " %%i in ('findstr "FACTORY DUT" 1.txt^|findstr /v "FIXTURE"') do call :lp %%i %%j %%k %%l
pause>nul&goto :eof
:lp
set str=%1
if defined str echo %str:~1,-1%
if defined str shift&goto lp
[
Last edited by zw19750516 on 2008-6-20 at 03:37 PM ]
作者: Dana
时间: 2008-6-20 15:35
多谢 zw19750516 兄的指点,经过测试可以提取相应的值,上面的是先把需要的行提取出来,在用 For 提取相应的值。可惜我没有想到这个思路....
再次感谢.
Dana
[
Last edited by Dana on 2008-6-20 at 03:37 PM ]
作者: Dana
时间: 2008-6-20 16:02
Quote: |
Originally posted by zw19750516 at 2008-6-20 03:20 PM:
楼主凑合用吧,又简化了下:
[code]
@echo off
for /f "tokens=3,5,7,8 delims==/> " %%i in ('findstr "FACTORY DUT" 1.txt^|findstr /v "FIXTURE"') do call : ... |
|
原来楼主是在最后一行中抓的......终于明白了。For 下来还要在看看。
作者: terse
时间: 2008-6-20 16:28
lp标签下可以简化
echo %~1
shift
if not "%~1"=="" goto lp
作者: bat-zw
时间: 2008-6-20 16:44
Quote: |
Originally posted by terse at 2008-6-20 16:28:
lp标签下可以简化
echo %~1
shift
if not "%~1"=="" goto lp |
|
确实是的,我又忘记变量扩展了,只想着截取字符,呵呵,谢谢指正了。