![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 10:00 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理如何对比并且输出2个文本文件不相同的行! |
| 可打印版本 1,082 / 6 |
| 第1楼 adslcool | 发表于 2010-04-21 19:26 |
| 新手上路 发帖 10 积分 10 | |
|
批处理如何对比并且输出2个文本文件不相同的行! 要求,在A.txt 存在的行,在B.txt逐行查找 ,,然后未找到的输出 结果.txt
例: a.txt 内容 ___________________________________ aaa bbb vwh ddd eee ... 以下省略几千条 ____________________________________ b.txt 内容 ____________________________________ 000 aaa q23 FFF ggg sdd jjk yyu eee ... 以下省略几千条 ____________________________________ 要求,在A.txt 存在的行,在B.txt逐行查找 ,,然后未找到的输出 结果.txt ![]() ![]() ![]() [ Last edited by adslcool on 2010-4-21 at 19:44 ] |
|
| 第2楼 adslcool | 发表于 2010-04-21 19:27 |
| 新手上路 发帖 10 积分 10 | |
|
急用,上千条的记录是在太难处理了
|
|
| 第3楼 Hanyeguxing | 发表于 2010-04-21 19:35 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
| 第4楼 adslcool | 发表于 2010-04-21 19:39 |
| 新手上路 发帖 10 积分 10 | |
|
要求,在A.txt 存在的行,在B.txt逐行查找 ,,然后未找到的输出 结果.txt
|
|
| 第5楼 adslcool | 发表于 2010-04-21 19:46 |
| 新手上路 发帖 10 积分 10 | |
|
用这个貌似能搞定
@echo off title 比较文本批处理 %date% mode con: cols=50 lines=10 color 1f echo. echo 文件对比 echo. echo 1、过滤文本重复行 echo 2、提取文本重复行 echo 3、比较文本提取重复行 echo 4、比较文本提取不重复 echo. echo. set /p wo=(Q退出)请正确选择: ::过滤 if %wo% equ n (goto :q) else (if %wo% gtr 4 (%0) else (if %wo% lss 1 %0)) if %wo% ==1 goto :1 if %wo% ==2 goto :2 if %wo% ==3 goto :3 if %wo% ==4 goto :4 goto :eof :1 cls echo 过滤文本重复行 echo. set /p wb=请输入要处理的文本: set /p wb1=请输入处理后生成的文本: for /f "delims=" %%i in (%wb%) do ( if not defined %%i set %%i=A & echo %%i>>%wb1% ) echo 处理完成 ping /n 2 127.0.1 >nul goto :eof :2 cls setlocal enabledelayedexpansion echo 提取文本重复行 echo. set /p wb=请输入要处理的文本: set /p wb1=请输入处理后生成的文本: for /f "delims=" %%a in ('sort %wb%') do ( if %%a equ !b! echo %%a>>%wb1% set b=%%a) echo 处理完成 ping /n 2 127.0.1 >nul goto :eof :3 cls echo 比较文本提取重复行 echo, echo (如有:1.txt 2.txt 提取1.txt在2.txt里出现的行) echo. set /p wb1=请输入要处理的文本1: set /p wb2=请输入要处理的文本2: set /p wb3=请输入处理后生成的文本: for /f "delims=" %%c in (%wb1%) do ( findstr "%%c" %wb2%>nul &&echo %%c>>%wb3%) echo 处理完成 ping /n 2 127.0.1 >nul goto :eof :4 cls echo 比较文本提取不重复 echo, echo (如有:1.txt 2.txt 提取1.txt在2.txt里没有的行) echo. set /p wb1=请输入要处理的文本1: set /p wb2=请输入要处理的文本2: set /p wb3=请输入处理后生成的文本: for /f "delims=" %%c in (%wb1%) do ( findstr "%%c" %wb2%>nul ||echo %%c>>%wb3%) echo 处理完成 ping /n 2 127.0.1 >nul goto :eof :q goto :eof |
|
| 第6楼 Hanyeguxing | 发表于 2010-04-21 20:17 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
以a.txt为样本比较,如果b.txt中不存在同样行则输出到c.txt中 |
|
| 第7楼 Hanyeguxing | 发表于 2010-04-21 20:21 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
以a.txt为样本比较,如果b.txt中存在着同样行则输出到c.txt中 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |