Board logo

标题: [文本处理] [已解决]批处理怎样提取字符? [打印本页]

作者: pengyou86    时间: 2011-3-9 22:32     标题: [已解决]批处理怎样提取字符?

以下是您的激活码:<br />
******************************<wbr />*<br />
A1DF-31DV-3KRL-ASND-W64B-PTUR<br />


上面的蓝色是123.txt文本中的内容,里面有很多乱码但我标记蓝色这部分是固定不乱的、我想让批处理实现一下功能
批处理把123.txt文本中所有“A1DF-31DV-3KRL-ASND-W64B-PTUR”这部分提取出来后并且保存到124.txt文本中

其中“:<br />
******************************<wbr />*<br />
A1DF-31DV-3KRL-ASND-W64B-PTUR<br />
”这部分字节数量不变

这“A1DF-31DV-3KRL-ASND-W64B-PTUR”字符变化 但字节数量是不变的

我把123.txt文本上传到附件中
作者: CrLf    时间: 2011-3-9 22:44

看着真累...建议以下面的格式举例

比如我要颠倒文本行序,我会这么提问

原文件1.txt:
1111
2222

生成2.txt:
2222
1111
作者: batman    时间: 2011-3-9 22:48

语无伦次,想要很好地解决你的问题,最好用文字把你的意思描述清楚,ok?
作者: pengyou86    时间: 2011-3-9 22:54

原帖由 batman 于 2011-3-9 22:48 发表
语无伦次,想要很好地解决你的问题,最好用文字把你的意思描述清楚,ok?


123.TXT文本我已经上传了。
123.txt保存的是网页的源代码 所以看起来比较乱
作者: CrLf    时间: 2011-3-9 23:03

  1. @echo off
  2. for /f "tokens=2 delims=:<" %%a in ('findstr /n .* 123.txt^|findstr "^4:"') do set 激活码=%%a
  3. echo %激活码%
  4. pause
复制代码

作者: pengyou86    时间: 2011-3-9 23:10

原帖由 zm900612 于 2011-3-9 23:03 发表
@echo off
for /f "tokens=2 delims=:


谢谢 我测试只能提取其中一个激活码   里面的激活码数量是不固定的
作者: CrLf    时间: 2011-3-9 23:14

好吧,那我改下吧...

[ 本帖最后由 zm900612 于 2011-3-9 23:16 编辑 ]
作者: CrLf    时间: 2011-3-9 23:18

  1. @echo off
  2. (for /f "tokens=1 delims=<" %%a in ('findstr "^....-....-....-....-....-....<" 123.txt') do echo %%a)>124.txt
  3. pause
复制代码

作者: pengyou86    时间: 2011-3-9 23:19

原帖由 zm900612 于 2011-3-9 23:14 发表
好吧,那我改下吧...

感谢  麻烦了
作者: friendtasy    时间: 2011-3-9 23:19

这个应用用正则来提取比较方便吧
作者: CrLf    时间: 2011-3-9 23:22

确实很适合用正则,但是如果其所在的行数固定,那用行数作为判断依据是最准确的,所以我的第一选择是抽取指定行而非正则匹配
作者: pengyou86    时间: 2011-3-9 23:24

原帖由 zm900612 于 2011-3-9 23:18 发表
@echo off
(for /f "tokens=1 delims=


感谢问题已经解决
作者: pengyou86    时间: 2011-3-9 23:28

原帖由 zm900612 于 2011-3-9 23:22 发表
确实很适合用正则,但是如果其所在的行数固定,那用行数作为判断依据是最准确的,所以我的第一选择是抽取指定行而非正则匹配


再次感谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2