Board logo

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

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

123.txt文本中有不固定个数以下我标记红和蓝组合  我想把蓝色那部分提取后并且保存到124.txt文本中

以下是您的激活码:
*******************************
A1QD-31D3-3D4C-PC75-Y76T-AW8A

作者: batman    时间: 2011-3-10 23:46

  1. @echo off
  2. (for /f "delims=" %%a in (123.txt) do (
  3.       if defined a if defined b echo %%a&set "a="&set "b="
  4.       if "%%a" equ  "以下是您的激活码:" set "a=a"
  5.       if "%%a" equ "*******************************" set "b=a"
  6. ))>124.txt
  7. start 124.txt
复制代码

[ 本帖最后由 batman 于 2011-3-10 23:49 编辑 ]
作者: pengyou86    时间: 2011-3-10 23:50

原帖由 batman 于 2011-3-10 23:46 发表

@echo off
(for /f "delims=" %%a in (123.txt) do (
      if defined a if defined b echo %%a&set "a="&set "b="
      if "%%a" equ  "以下是您的激活码:" set "a=a"
      if "%%a" equ "*************** ...


感谢我测试一下
作者: pengyou86    时间: 2011-3-11 00:32     标题: 提取字符

888.txt文本中有数量不固定的红蓝组合. 但红色那部分“使用期限:   <http://li.kaba365.com/image/al.jpg>  ”是固定  ,红蓝部分字节数量是固定的、我想让批处理把蓝色那部分提取出来并且保存到124.txt文本中


以下是我的举例

使用期限:   <http://li.kaba365.com/image/al.jpg>  
激 活 码:8PD56-DV6Y6-NFE8F-2D9YK



888.TXT文本我已经上传到附件中[attach]3561[/attach]

[ 本帖最后由 pengyou86 于 2011-3-11 10:35 编辑 ]
作者: weichenxiehou    时间: 2011-3-11 09:50

怎么顶楼和四楼举的例子形式不一样呢?叫人如何下得了手,何不把文档内容粘贴出来?若是怕激活码外泄,可以修改一下嘛。
作者: q120072949    时间: 2011-3-11 09:56

貌似最近很多弄激活码的来这里啊!
作者: pengyou86    时间: 2011-3-11 09:58

原帖由 weichenxiehou 于 2011-3-11 09:50 发表
怎么顶楼和四楼举的例子形式不一样呢?叫人如何下得了手,何不把文档内容粘贴出来?若是怕激活码外泄,可以修改一下嘛。



本来是发了2个帖子  版主说我重复发帖   就这样被移动到4楼了   

1楼和4楼是2个不同的求助内容
作者: pengyou86    时间: 2011-3-11 10:31

原帖由 batman 于 2011-3-10 23:46 发表

@echo off
(for /f "delims=" %%a in (123.txt) do (
      if defined a if defined b echo %%a&set "a="&set "b="
      if "%%a" equ  "以下是您的激活码:" set "a=a"
      if "%%a" equ "*************** ...

测试不成功
我把123.txt上传到附件中
[attach]3560[/attach]
作者: weichenxiehou    时间: 2011-3-11 10:57     标题: 回复 7楼 的帖子

  1. @echo off
  2. set "str=[A-Z0-9]*"
  3. findstr "^%str%-%str%-%str%-%str%-%str%-%str%$" 123.txt>124.txt
  4. start 124.txt
复制代码

作者: pengyou86    时间: 2011-3-11 11:01

原帖由 weichenxiehou 于 2011-3-11 10:57 发表
@echo off
set "str=[A-Z0-9]*"
findstr "^%str%-%str%-%str%-%str%-%str%-%str%$" 123.txt>124.txt
start 124.txt



感谢 测试一楼问题解决  麻烦再帮忙看一下4楼的
作者: weichenxiehou    时间: 2011-3-11 11:06

  1. @echo off
  2. set "str=[A-Z0-9]*"
  3. findstr "%str%-%str%-%str%-%str%$" 123.txt>124.txt
  4. start 124.txt
复制代码
因为文本规律描述的不是很清楚,所以就题解题而已,几乎没什么通用性。
作者: pengyou86    时间: 2011-3-11 11:08

原帖由 pengyou86 于 2011-3-11 00:32 发表
888.txt文本中有数量不固定的红蓝组合. 但红色那部分“使用期限:     ”是固定  ,红蓝部分字节数量是固定的、我想让批处理把蓝色那部分提取出来并且保存到124.txt文本中


以下是我的举例

使用期限:     
...




4楼问题麻烦高手帮忙解决一下  谢谢
作者: weichenxiehou    时间: 2011-3-11 11:10     标题: 回复 13楼 的帖子

何不上传一下附件,让我等看一下文本的具体构成,找到规律,然后写出代码呢?
作者: pengyou86    时间: 2011-3-11 11:19

原帖由 weichenxiehou 于 2011-3-11 11:10 发表
何不上传一下附件,让我等看一下文本的具体构成,找到规律,然后写出代码呢?



已经上传在4楼上面
作者: weichenxiehou    时间: 2011-3-11 11:26     标题: 回复 14楼 的帖子

  1. @echo off
  2. cd.>124.txt
  3. for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do
  4. echo,%%b>>124.txt
  5. start 124.txt
复制代码

针对四楼的情况应该可以吧?

[ 本帖最后由 weichenxiehou 于 2011-3-11 11:37 编辑 ]
作者: pengyou86    时间: 2011-3-11 11:40

原帖由 weichenxiehou 于 2011-3-11 11:26 发表

@echo off
cd.>124.txt
for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do
echo,%%b>>124.txt
start 124.txt
[attach]3563[/attach]

打开批处理提示找不到124.txt
作者: pengyou86    时间: 2011-3-11 11:43

原帖由 weichenxiehou 于 2011-3-11 11:26 发表
@echo off
cd.>124.txt
for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do
echo,%%b>>124.txt
start 124.txt
针对四楼的情况应该可以吧?


测试打开批处理后   124.txt没有提取到的字符完全是空白的 什么都没有
作者: weichenxiehou    时间: 2011-3-11 11:48     标题: 回复 17楼 的帖子

请确认bat文件和888.txt在同一目录
作者: pengyou86    时间: 2011-3-11 11:57

原帖由 weichenxiehou 于 2011-3-11 11:48 发表
请确认bat文件和888.txt在同一目录,我的结果:



当然是在一个目录下了  测试还是不行
作者: weichenxiehou    时间: 2011-3-11 12:04     标题: 回复 19楼 的帖子

还是16楼的样子?找不到124.txt?
作者: batman    时间: 2011-3-11 12:05     标题: 回复 19楼 的帖子

不知道楼上这个四级士官是怎么来的,要是不行,自己不知道改一下。。。
作者: pengyou86    时间: 2011-3-11 12:15

原帖由 weichenxiehou 于 2011-3-11 12:04 发表
还是16楼的样子?找不到124.txt?


找到124.txt 但124.txt文本中什么都没有 空白的
作者: pengyou86    时间: 2011-3-11 12:20

原帖由 batman 于 2011-3-11 12:05 发表
不知道楼上这个四级士官是怎么来的,要是不行,自己不知道改一下。。。



不好意思 让你见笑了  我对批处理不懂
作者: CrLf    时间: 2011-3-11 12:48

原帖由 weichenxiehou 于 2011-3-11 11:26 发表
@echo off
cd.>124.txt
for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do
echo,%%b>>124.txt
start 124.txt
针对四楼的情况应该可以吧?

124.txt为空的原因可能有两个,一个是代码的do和echo之间被换行了,二是没考虑到%%b以数字结尾的情况,改下应该就行了
  1. @echo off
  2. (for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do echo,%%b)>124.txt
  3. start 124.txt
复制代码

作者: pengyou86    时间: 2011-3-11 13:26

原帖由 zm900612 于 2011-3-11 12:48 发表

124.txt为空的原因可能有两个,一个是代码的do和echo之间被换行了,二是没考虑到%%b以数字结尾的情况,改下应该就行了@echo off
(for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do ech ...



谢谢 测试可以使用 感谢




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