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

[文本处理] [已解决]批处理如何查找2个文本,在第三个文本显示不重复行?

1.txt:
a
aa
b
bb
c
....

2.txt
a
ab
b
bc
c
...

批处理要达到的效果:
1.运行批处理后可以把2个文本里不重复的行写入到3.txt
aa
ab
bb
bc

2.把2个文本里重复的行写入到4.txt
a
b
c

也就是说我要对比出2个文本里互相不重复的行,然后按照重复跟不重复的分别输出到2个.txt

[ 本帖最后由 q120072949 于 2011-1-9 19:53 编辑 ]
1

评分人数

    • hanyeguxing: 感谢给帖子标题标注[已解决]字样PB + 2

  1. findstr /i /v /x /g:1.txt 2.txt>3.txt
  2. findstr /i /v /x /g:2.txt 1.txt>>3.txt
  3. findstr /i /x /g:1.txt 2.txt>4.txt
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-6 20:41 编辑 ]
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

  1. @echo off
  2. :choose
  3. echo.&echo 请选择操作类型:
  4. echo.&echo 1 - 比较两个文本并将相同内容输出
  5. echo.&echo 2 - 比较两个文本并将不同内容输出
  6. echo.&echo 3 - 两个文本内容合并后将相同内容只保留一个输出
  7. echo.&echo 0 - 退出批处理
  8. echo.&set choose=&set /p choose=选择要执行的序号:
  9. if %choose% equ 0 exit
  10. for /l %%a in (1,1,3) do if %choose% equ %%a (
  11. call :setfile
  12. call :%%a
  13. cls&echo.&echo 处理完毕!继续选择操作类型:
  14. goto :choose
  15. )
  16. cls&echo.&echo 输入的序号有误,请重新选择!&goto :choose
  17. :setfile
  18. echo.&set file1=&set /p file1=请输入要比较的第一个文件名:
  19. set file1=%file1:"=%
  20. echo.&set file2=&set /p file2=请输入要比较的第二个文件名:
  21. set file2=%file2:"=%
  22. echo.&set outfile=&set /p outfile=请输入最后结果保存的文件名:
  23. set outfile=%outfile:"=%
  24. goto :eof
  25. :1
  26. findstr /i /g:"%file1%" "%file2%">"%outfile%"
  27. goto :eof
  28. :2
  29. call :1
  30. findstr /i /v /g:"%outfile%" "%file1%">"%outfile%.bak"
  31. findstr /i /v /g:"%outfile%" "%file2%">>"%outfile%.bak"
  32. sort "%outfile%.bak">"%outfile%"
  33. del "%outfile%.bak"
  34. goto :eof
  35. :3
  36. (type "%file1%"&echo.&type "%file2%")>"%outfile%"
  37. cd.>"%outfile%.bak"
  38. for /f "delims=" %%i in ('type "%outfile%"') do (if not defined %%i set %%i=A & echo %%i>>"%outfile%.bak")
  39. move /y "%outfile%.bak" "%outfile%"
  40. goto :eof
复制代码
1

评分人数

测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

2楼寒夜版主的代码很简洁强大,我采纳了,谢谢!
3楼的代码优化了下,也不错,谢谢!

TOP

2楼的代码对汉字就不灵了。一直在找对文本中有汉字的解决方法,但一直没有找到。
一切从头开始

TOP

回复 5# sshlovewp


    干嘛人家电脑得,而你的电脑不得?
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表