标题: [其他] 批处理如何从TXT文本提取数据并过滤重复数据? [打印本页]
作者: Rasm 时间: 2011-11-19 15:57 标题: 批处理如何从TXT文本提取数据并过滤重复数据?
最近在整理数据库,
从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
作者: weichenxiehou 时间: 2011-11-19 16:39
回复 1# Rasm
看得有点儿稀里糊涂,请给个简单的示例文本做参考,并附上应该得到的结果文本。
作者: awk 时间: 2011-11-19 18:09
- sed "s/UserID=//; s/&PassWord=/ /" a.txt >b.txt
复制代码
作者: szjwxn 时间: 2011-11-19 19:27
本帖最后由 szjwxn 于 2011-11-19 19:28 编辑
假如你的文档为1.txt,里面的内容为:UserID=我爱批处理之家&PassWord=123456789123456789,当然这只是一行,应该还有很多行,如果每一行的格式都是这样的话,那就可以这样写代码了:- @echo off
- setlocal enabledelayedexpansion
- color 1a
- for /f "delims==& tokens=2,4" %%i in (1.txt) do (
- echo %%i %%j>>2.txt
- )
- pause
复制代码
作者: powerbat 时间: 2011-11-22 23:00
既然是数据库,可以直接用数据库的方法,何必舍近求远?- @set @n=0//&cscript.exe -e:jscript "%~f0"&exit /b
-
- file = "users.txt";
-
- AdoCnn = new ActiveXObject("ADODB.Connection");
- AdoCnn.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;Extended Properties="text;HDR=no;FMT=Delimited;";');
- 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=%'");
- AdoCnn.Close();
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |