中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何取得指定字符的參數值 上一主题 | 下一主题
loveant521
初级用户





积分 50
发帖 20
注册 2007-9-9
状态 离线
『楼 主』:  如何取得指定字符的參數值

我想在這個穩當中找到Total_Test_Time的值,我的源代碼是
@echo off
for /f   "tokens=* delims=<>" %%i in ('findstr /i "Total_Test_Time" c:\2\*.xml') do @echo %%i
pause
可是怎麼不行呢?tokens最多只能定位31個字符,不能到達Total_Test_Time那裡,該怎麼辦呢??


<PTSD><UUT><Date_Time>09/08/07 06:05:26</Date_Time><PSN>7F1110165</PSN><ESN></ESN><Test_Mode_Attribute>0</Test_Mode_Attribute><Adapter_ID>size4_sk</Adapter_ID><HWID>2001</HWID><Module_Code>0203291</Module_Code><Basic_Product_Code>0542523</Basic_Product_Code><Product_Code>0542523</Product_Code><Module_Bom_Rev>0</Module_Bom_Rev><ComputerName>7f335d08</ComputerName><SW_Versions><SW_Type>MCUC</SW_Type><SW_Version>0.031</SW_Version><Station_SW_Version>42.2</Station_SW_Version><PTSD_Version>1.2.12.11</PTSD_Version><PM><Project_Name>pm_universal.seq</Project_Name><Project_Version>_</Project_Version><Object_Name>pm_universal-bo1dariu#304.4\pm_universal\products\pm_universal.seq</Object_Name><Object_ClusterID>6DD633AA</Object_ClusterID><Object_Version>_</Object_Version></PM><TP><Project_Name>tp_335_size4.seq</Project_Name><Project_Version>_</Project_Version><Object_Name>VC07_Family\tp_335_size4-ul1dariu#43.3\tp_335_size4\products\tp_335_size4.seq</Object_Name><Object_ClusterID>74161EBB</Object_ClusterID><Object_Version>_</Object_Version></TP></SW_Versions><CustomData><TMA_335>STANDARD</TMA_335></CustomData><Line_ID>7F</Line_ID><Phase_ID>335</Phase_ID><Station_ID>7F335D08</Station_ID><Execution_ID>1</Execution_ID><Factory>Foxconn LH China</Factory><Factory_Code>7</Factory_Code><Test_Status>1</Test_Status><Test_Counter>1</Test_Counter><Total_Test_Time>30538</Total_Test_Time><Load_Time>29</Load_Time><ID_Time>4278</ID_Time><Test_Time>16531</Test_Time><Release_Time>4727</Release_Time><Handling_Time>50377</Handling_Time></UUT><Test_Results><Test><Step_ID>17443</Step_ID><Step_Rev>1</Step_Rev><Result>1.000000</Result><Status>1</Status><Name>Set

2007-9-30 12:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


@echo off & SetLocal EnableDelayedExpansion
for /f "delims=" %%a in (i.txt) do (
    set "str=%%a"
    set "str=!str:>=!"
    set "str=!str:<=!"
    set "str=!str:/=!"
    set "str=!str:Total_Test_Time=□!"
    rem echo !str!
    for /f "delims=□ tokens=2" %%b in ("!str!") do echo result=%%b
)
pause


   此帖被 +1 点积分    点击查看详情   
评分人:【 loveant521 分数: +1  时间:2007-9-30 19:41


2007-9-30 15:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  用awk更简单


gawk -F"<Total_Test_Time>|</Total_Test_Time>" "{print $2}" i.txt


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





积分 50
发帖 20
注册 2007-9-9
状态 离线
『第 4 楼』:  好奇怪喔

是不是這個網站會自動回車呢?我那斷代碼是一個整行的,我把網站上的複製下來用你的代碼就可以,用我自己原來的文件就不行了,真是奇怪呢!

2007-9-30 17:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

注意自动换行的问题.

2007-9-30 18:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
loveant521
初级用户





积分 50
发帖 20
注册 2007-9-9
状态 离线
『第 6 楼』:  

下面這個是我原來的文件,我不知道怎麼上傳,所以放到我的空間了,麻煩你幫我再看一下
http://loveant521.ys168.com/
卡巴斯基文件夾裡面的那個i.txt
我明白你那代碼的意思了,可是我自己弄出來的不行啊,拜託喔

2007-9-30 18:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

你这个文件里面的第3行太长了,cmd无法处理。
用3楼的awk处理吧。

2007-9-30 19:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
loveant521
初级用户





积分 50
发帖 20
注册 2007-9-9
状态 离线
『第 8 楼』:  

這樣阿,怪不得呢!謝謝喔!

2007-9-30 19:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: