中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-02 00:21
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助高手,如何读取日志文件中指定某一字段内容
可打印版本  1,050 / 12
第1楼 zjjzh 发表于 2010-03-18 15:49
初级用户 发帖 14 积分 25
求助高手,如何读取日志文件中指定某一字段内容
求助各位高手,我现在应用中记录一个日志aa.xml
日志内容是:
....
<description>应用系统告警add ssd,请解决。</description>
....

description里的内容格式有空格和逗号等。
脚本如何实现获取应用系统告警add ssd,请解决。并赋值给变量
比如call tt.bat %1 其中%1的值就是“应用系统告警add ssd,请解决”
另外,日志是持续的写进去,所以不能重复读取,只读取最新的内容。


各位老大帮忙啊。
第2楼 Hanyeguxing 发表于 2010-03-18 16:10
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
如果“<description>应用系统告警add ssd,请解决。</description>”的前后没有空格或制表符的话,可以:
这个时候M就是你要的变量
没明白你要call他干什么呢?

[ Last edited by Hanyeguxing on 2010-3-18 at 16:13 ]
第3楼 zjjzh 发表于 2010-03-18 16:58
初级用户 发帖 14 积分 25
非常感谢楼上解答。call只是一个例子,我是用另外一个命令行来调用这个变量。发给告警平台。
第4楼 zjjzh 发表于 2010-03-18 18:01
初级用户 发帖 14 积分 25
Originally posted by Hanyeguxing at 2010-3-18 04:10 PM:
如果“<description>应用系统告警add ssd,请解决。</description>”的前后没有空格或制表符的话,可以:
第5楼 Hanyeguxing 发表于 2010-03-18 18:25
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
按你提供的代码,测试通过

echo !M!这个时候的变量M是动态的,所有的
echo %M%这个时候的变量M没有动态扩展,是!M!值的最后一个,也就是最新的
这个批处理依据的是对字符串的截取比较,所以要求:
<description>...</description>必须在同一行
<description>前面没有空格、制表符或其他任何字符
</description>后面没有空格、制表符或其他任何字符

[ Last edited by Hanyeguxing on 2010-3-18 at 18:49 ]
第6楼 zjjzh 发表于 2010-03-18 18:41
初级用户 发帖 14 积分 25
Originally posted by Hanyeguxing at 2010-3-18 06:25 PM:
按你提供的代码,测试通过
第7楼 Hanyeguxing 发表于 2010-03-18 18:45
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂

你只用echo %M%不就可以了吗?
第8楼 zjjzh 发表于 2010-03-18 18:56
初级用户 发帖 14 积分 25
Originally posted by Hanyeguxing at 2010-3-18 06:45 PM:
第9楼 Hanyeguxing 发表于 2010-03-18 19:06
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
1,每次增加N条内容到源文件中,只要最新的,也就是最后一条记录。
如果你要求这样,那么楼上批处理得到的就是这个。
2,每次增加N条内容到源文件中,只要最新的,也就是后增加近来的所有条数。以后每次如此读取,如此类推。
你要求的是这样的?
第10楼 zjjzh 发表于 2010-03-18 19:11
初级用户 发帖 14 积分 25
对的,我就是要求2的。
只要新增的不管多少条,都要显示。
第11楼 Hanyeguxing 发表于 2010-03-18 19:40
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
方法有很多中,这是其中之一,使用fc输出新增差异再解析。其他方法例如可以记录每次读取的行等等都可以:

要求:
aa.xml必须是每次都在原有的内容基础上在下面新增加内容。

[ Last edited by Hanyeguxing on 2010-3-18 at 20:02 ]
第12楼 Hanyeguxing 发表于 2010-03-18 19:59
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
这个方法也可以

要求:
aa.xml必须是每次都在原有的内容基础上在下面新增加内容。
说明:
本批处理未经过测试

[ Last edited by Hanyeguxing on 2010-3-18 at 21:08 ]
第13楼 zjjzh 发表于 2010-03-18 20:12
初级用户 发帖 14 积分 25
老大你太强了。佩服。。
再次感谢解决我的问题。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023