永发信息网

在文本中找出重复的数据记录的批处理怎么写

答案:3  悬赏:20  手机版
解决时间 2021-03-08 07:53
  • 提问者网友:难遇难求
  • 2021-03-07 22:17
公司考勤机经常出错,员工刷卡数据会经常重复,从考勤机导出来的数据是TXT文本格式的,我想写个批处理自动找出重复的记录!怎么写这个批处理???大家帮忙!

要求如下:

例如刷卡数据为:

卡号, 工号, 性名
11223344 S090807 王明
11223355 S090806 李小
………… ………… ……
等等

如果其中哪一条数据出现重复能用批处理找出来生成在另一个文本中,我写了一个能找出重复的数据来,但是还发现一个问题:比如说:性名,工号都一样
然后就是卡号不同,这样的话我写的批处理就找不出来了,我想大家帮我想想
只要数据中工号和姓名一样就视为重复记录!批处理就必须把它找出来!

能达到效果高分20分!
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-03-07 22:40
@echo off&cd.>b.txt
for /f "tokens=1,2,3" %%a in (a.txt)do (
for /f "tokens=3" %%i in ('find/c "%%b" a.txt')do (
if %%i neq 1 (
find "%%b" b.txt||echo/%%a %%b %%c>>b.txt
)))
pause

因为工号和姓名是绑定的,所以只要数据中工号重复了就可视为重复~~~~~

把你文本发我Q
全部回答
  • 1楼网友:污到你湿
  • 2021-03-08 00:57

将代码保存为“过滤.bat”,将过滤的文本改名为“test.txt” 运行批处理即可 :

@echo off&mode con cols=50 lines=20&color 0f cd.>过滤.txt for /f "tokens=1* delims=:" %%i in ('findstr /n .* test.txt') do ( findstr /r /b /e /c:"%%j" "过滤.txt" 1>nul 2>nul || >>过滤.txt echo.%%j ) pause

  • 2楼网友:千杯敬自由
  • 2021-03-07 23:49
'=================================================== set fso=wscript.createobject("scripting.filesystemobject") fso.copyfile "data.txt","temp.txt" set fr1=fso.opentextfile("data.txt",1) set fw=fso.createtextfile("new_data.txt",2) do data=fr1.readline set fr2=fso.opentextfile("temp.txt",1) i=0 do find=fr2.readline if data=find then i=i+1 end if if i>1 then fw.writeline(data) exit do end if loop until fr2.atendofstream fr2.close loop until fr1.atendofstream fr2.close fso.deletefile("temp.txt") '==================================================== 复制保存为vbs文件,把你的数据文件改名为data.txt,把这个vbs文件放到与data.txt同目录下运行vbs文件即可得到new_data.txt里面记录了重复的条目,本机测试通过。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯