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

[其他] 批处理如何从TXT文本提取数据并过滤重复数据?

[复制链接]
发表于 2011-11-19 15:57:49 | 显示全部楼层 |阅读模式
最近在整理数据库,

从TXT文本中提取字段 UserID=123456&PassWord=32位MD5值,并过滤掉重复数据。

内容:要提取字段就是UserID=XXXX&PassWord=XXXXXXXXXXX 然后过滤掉重复

就是把UserID=内容1&PassWord=内容2
两个内容保留,userid=&Password=删除


两个内容之间提出出来的数据用空格隔开

不知道用批处理怎么写,大概有100多条,内容1内容2 的文字是不固定的,随机的

UserID=XXXX&PassWord=XXXXXXXXXXX

如UserID=我爱批处理之家&PassWord=123456789123456789

就是要得到: 我哎批处理之家 1234567890123456789

PassWord=后面保留32位数,因为是32位的MD5
发表于 2011-11-19 16:39:22 | 显示全部楼层
回复 1# Rasm
看得有点儿稀里糊涂,请给个简单的示例文本做参考,并附上应该得到的结果文本。
发表于 2011-11-19 18:09:38 | 显示全部楼层
  1. sed "s/UserID=//; s/&PassWord=/ /" a.txt >b.txt
复制代码
发表于 2011-11-19 19:27:26 | 显示全部楼层
本帖最后由 szjwxn 于 2011-11-19 19:28 编辑

假如你的文档为1.txt,里面的内容为:UserID=我爱批处理之家&PassWord=123456789123456789,当然这只是一行,应该还有很多行,如果每一行的格式都是这样的话,那就可以这样写代码了:

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. color 1a
  4. for /f "delims==& tokens=2,4" %%i in (1.txt) do (
  5.     echo %%i %%j>>2.txt
  6.         )
  7. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Rasm + 1 就是这样,感谢

查看全部评分

发表于 2011-11-22 23:00:14 | 显示全部楼层
既然是数据库,可以直接用数据库的方法,何必舍近求远?

  1. @set @n=0//&cscript.exe -e:jscript "%~f0"&exit /b

  2. file = "users.txt";

  3. AdoCnn = new ActiveXObject("ADODB.Connection");
  4. AdoCnn.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;Extended Properties="text;HDR=no;FMT=Delimited;";');
  5. AdoCnn.Execute("SELECT DISTINCT Mid(F1,InStr(F1,'UserID=')+7,Instr(F1,'&PassWord=')-InStr(F1,'UserID=')-7) as [UserID], Mid(F1,Instr(F1,'&PassWord=')+10,32) as [PassWord] INTO [result.txt] from ["+file+"] WHERE F1 LIKE '%UserID=%&PassWord=%'");
  6. AdoCnn.Close();
复制代码

评分

参与人数 1PB +10 技术 +1 收起 理由
zqz0012005 + 10 + 1 谁说没人用JS?这位就是高手

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 15:39 , Processed in 0.028124 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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