[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何根据A文件的内容抽取B文件对应行的下一行?

这是1个账号文本编辑方面的问题,需要实现如下功能
1、根据A文件中的内容抽取B文件对应行的下一行内容
2、跳转到指定行
-------------------------------------------------------------------

1.txt里面内容如下
fsdfsdf
123
gfdgdg
123
gdfgdf
123
sfsdfssa
123
sdfsdfs
123
..........
(数量很多很多,下面就不写了,格式是1行账号,1行密码)

软件运行后,有些出错的自动保存在了save.txt里面
save.txt里面内容如下
gfdgdg

gdfgdf


这里其实就是把1.txt里面出问题的账号自动保存到save.txt里面,以防以后查询,但在save.txt文本偶数行是空格,也就是密码没保存,只是在奇数行保存了账号,也就是1个账号,1个空格,再1个账号

请教下大家,怎样作到下面这个功能
1.怎么能通过1.txt,把save.txt(偶数行的)密码自动补全
2.可随便通过bat查找1.txt中随便行数,比如我在bat里面输入4000,就自动打开1.txt里面第4000行


现在痛苦的要死,save保存了1000多账号,要从1.txt中去查找这1000个号的密码

希望大家帮帮我,谢谢了

[ 本帖最后由 chengkang 于 2010-7-27 12:44 编辑 ]

1、账号是否有空格、&等特殊字符,请把账号允许存在的字符说一下
2、到底是空格还是空行?若是空行,该行仅有回车换行符还是有可能存在空格?
3、账号是否有可能重复?若有重复,对应的密码是否相同?
4、能否说明这个代码的使用场合吗?盗号之后验证密码?
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

1、账号是否有空格、&等特殊字符,请把账号允许存在的字符说一下
2、到底是空格还是空行?若是空行,该行仅有回车换行符还是有可能存在空格?
账号无空格、&等特殊字符,就字母数字组成
仅有回车换行符

3、账号是否有可能重复?若有重复,对应的密码是否相同?
账号没有重复,密码有些相同

4、能否说明这个代码的使用场合吗?盗号之后验证密码?
不是盗号,是游戏辅助上面,自己使用的账号
登陆异常的号保存在save里面,事后单独再处理


谢谢版主了~~

[ 本帖最后由 chengkang 于 2010-7-27 13:16 编辑 ]

TOP

未测试,有问题跟帖
注意代码会重写save.txt文件注意备份。。。
  1. @echo off&setlocal enabledelayedexpansion
  2. :start
  3. setlocal&set var=&set /a n=0,m=0
  4. echo 请输入需查询的行号,直接按回车密码补全
  5. echo;&set /p var= &cls
  6. for /f "delims=" %%a in (save.txt) do set ..%%a=a
  7. for /f "delims=" %%a in (1.txt) do (
  8.    set /a n+=1,n=n%%2,m+=1
  9.    if "!m!"=="!var!" (echo %%a&goto end) else (
  10.       if defined flag (
  11.           >>tem echo !flag!
  12.           >>tem echo %%a
  13.           set "flag="
  14.         )
  15.       if !N! equ 1 if defined ..%%a set flag=%%a
  16.     )
  17. )
  18. move tem save.txt
  19. start save.txt
  20. exit
  21. :end
  22. endlocal&goto start
复制代码
技术问题请到论坛发帖求助!

TOP

谢谢版主,谢谢大家

密码补齐OK了
------------------
查询那麻烦再弄下

效果跟在文本里面CTRL+F效果一样
比如输入1个账号fsdf2s3sg的其中连续3位,就可以在1.txt里面寻找到所有包含这3位字母的所有账号,在批处理上并显示每个账号所在"行数"

给大家带来麻烦了,谢谢了

[ 本帖最后由 chengkang 于 2010-7-27 14:58 编辑 ]

TOP

请各位老师帮忙了
谢谢版主,谢谢大家

TOP

回复 5楼 的帖子

显示账号和行数的同时还要不要显示密码呢?

TOP

  1. @echo off
  2. rem 这样就可以根据关键字显示所在行了,但是不能显示密码
  3. set/p var=输入关键字
  4. findstr /n .*%var%.* 1.txt
复制代码

[ 本帖最后由 netbenton 于 2010-7-27 19:21 编辑 ]

TOP

原帖由 wankoilz 于 2010-7-27 18:58 发表
显示账号和行数的同时还要不要显示密码呢?


不要显示密码了

TOP

原帖由 netbenton 于 2010-7-27 19:19 发表
@echo off
rem 这样就可以根据关键字显示所在行了,但是不能显示密码
set/p var=输入关键字
findstr /n .*%var%.* 1.txt


版主,这个用不了

TOP

回复 10楼 的帖子

8楼可能忽略了pause,加上应该可以了吧:
  1. @echo off
  2. rem 这样就可以根据关键字显示所在行了,但是不能显示密码
  3. set/p var=输入关键字
  4. findstr /n .*%var%.* 1.txt
  5. pause
复制代码

TOP

返回列表