找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24758|回复: 8

[文本处理] 【已解决】批处理如何提取文本中指定标签/标记符囊括起来的内容?

[复制链接]
发表于 2016-5-11 20:52:14 | 显示全部楼层 |阅读模式
本帖最后由 wbkl 于 2016-5-26 21:05 编辑

批处理如何提取文本文件中指定字符段中间的内容:<xzbhm>要提取的内容</xzbhm>

文本文件是一个日志,记录的内容非常多,这只是其中的一小部分
2016-05-11 00:06:06 com=1
2016-05-11 00:06:06 命令:be

<business ="FPM" comment="fedpp"><body count="1" ><groupxh="2"><dataname="1_dm" value="b08"/></ness>

<GoodsE><HSB11></HSB11><SPBM></SPBM><QYSPBM></QYSPBM><SYYHZCBZ></SYYHZCBZ><YHZC></YHZC><LSLBZ></LSLBZ></GoodsMx><BillNo>513828</BillNo><xzbhm>512960001</xzbhm><StatuM>T00001</StatusDM>

2016-05-11 01:45:11 命令:1
2016-05-11 01:45:11 命令:2
2016-05-11 01:45:11 补2命令
2016-05-11 01:45:12 增加命令
2016-05-11 01:45:12 id=2
2016-05-11 01:45:12 命令2
2016-05-11 01:45:12 命令:2
2016-05-11 01:45:12 执行:2b

<GoodsE><HSB11></HSB11><SPBM></SPBM><QYSPBM></QYSPBM><SYYHZCBZ></SYYHZCBZ><YHZC></YHZC><LSLBZ></LSLBZ></GoodsMx><BillNo>513828</BillNo><xzbhm>779610002</xzbhm><StatuM>T00001</StatusDM>

评分

参与人数 2PB -4 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样
pcl_test -6 未按版规发帖

查看全部评分

发表于 2016-5-11 21:04:18 | 显示全部楼层
请把原始文件压缩之后传上来,否则 别人写的代码你可能没法用。
 楼主| 发表于 2016-5-11 21:47:43 | 显示全部楼层
本帖最后由 wbkl 于 2016-5-11 21:49 编辑

回复 2# gawk


    这个内容我简化了,其实一段有很多行,不过内容基本也都是这种样子的,每段中间还有很多其他的内容随机出现
发表于 2016-5-11 23:14:45 | 显示全部楼层
第三方
  1. grep -oP "(?<=<xzbhm>)[^>]+(?=<\/xzbhm>)" "1.txt">"2.txt"
复制代码
 楼主| 发表于 2016-5-11 23:35:45 | 显示全部楼层
回复 4# pcl_test


    呵呵,我想了好久估计也就第三方能整出来了,批处理看来是没希望了
发表于 2016-5-12 00:19:24 | 显示全部楼层
回复 5# wbkl

嗯,第三方方便,就你给出的样文而言,纯批也没难度
发表于 2016-5-12 13:28:14 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('type "1.txt" ^| findstr "<xzbhm>"') do (
  4.     set "str=%%i"
  5.     set "str=!str:*xzbhm>=!"
  6.     for /f "delims=<" %%j in ("!str!") do (
  7.         echo,%%j
  8.     )
  9. ))>2.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-5-26 21:04:40 | 显示全部楼层
回复 7# gawk


你肯定是测试过我发的文本了,但其实原日志比这个复杂的多,还是没能提取出来;出于保密我不能完整把它贴出来,我后来还是用了其他方法。。。回复晚了,谢谢!
发表于 2016-5-27 13:02:03 | 显示全部楼层
回复 8# wbkl


    嗯,再次印证了2楼的话:否则 别人写的代码你可能没法用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:47 , Processed in 0.010824 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表