标题: [文本处理] [已解决]批处理怎样提取字符? [打印本页]
作者: pengyou86 时间: 2011-3-10 23:28 标题: [已解决]批处理怎样提取字符?
123.txt文本中有不固定个数以下我标记红和蓝组合 我想把蓝色那部分提取后并且保存到124.txt文本中
以下是您的激活码:
*******************************
A1QD-31D3-3D4C-PC75-Y76T-AW8A
作者: 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 "*******************************" set "b=a"
- ))>124.txt
- 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楼 的帖子
- @echo off
- set "str=[A-Z0-9]*"
- findstr "^%str%-%str%-%str%-%str%-%str%-%str%$" 123.txt>124.txt
- 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
- @echo off
- set "str=[A-Z0-9]*"
- findstr "%str%-%str%-%str%-%str%$" 123.txt>124.txt
- 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楼 的帖子
- @echo off
- cd.>124.txt
- for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do
- echo,%%b>>124.txt
- 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以数字结尾的情况,改下应该就行了- @echo off
- (for /f "tokens=1* delims=:" %%a in ('findstr /c:"激 活 码" 888.txt') do echo,%%b)>124.txt
- 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://www.bathome.net/) |
Powered by Discuz! 7.2 |