![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 01:00 |
共 48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]文本对比的新问题 |
| 可打印版本 785 / 4 |
| 第1楼 w1314ich | 发表于 2007-12-30 14:42 |
| 中级用户 发帖 119 积分 234 | |
|
[求助]文本对比的新问题 文本1内容:
a ab abc abcd 文本2内容: a abr abc abcd abcde 使用批处理对比两个文本内容后输出的结果为: abr 结果中不包含文本2中的abcde,这是文本2中比1多的内容,为什么不能显示出来呢 |
|
| 第2楼 greenworld | 发表于 2007-12-30 14:58 |
| 初级用户 发帖 45 积分 86 | |
|
LZ,这个问题不好回答吧?你用了什么命令才产生这种结果的呢?问题的关键在于你用的命令本身而不是比较的文本文件本身,怎么不发你用的命令内容出来而发文本文件的内容出来呢?
|
|
| 第3楼 HAT | 发表于 2007-12-30 17:18 |
| 版主 发帖 5,017 积分 9,023 | |
|
把你的代码贴出来看看
|
|
| 第4楼 ZJHJ | 发表于 2007-12-30 18:14 |
| 高级用户 发帖 374 积分 609 | |
|
我批处理水平不好,写得有点烦琐。希望高手精简!不过是成品哦!
@echo off @title 文件内容变化检出程序 wang in 070810yc QQ251485609 :cxsr @echo. @echo. @echo 这是文件内容变化对比检出程序 @echo. @echo 它将自动检出在原始文件上被改动或增加的行内容 @echo. @echo. SET /P gwjm= 请将原始文件拉入本窗口: if exist %gwjm% goto zx @goto cxsr :zx @echo 原始文件>原始.txt more %gwjm%>>原始.txt :cx2 SET /P xwj= 请将内容有变化的新文件拉入本窗口: if exist %xwj% goto zx2 @goto cx2 :zx2 @echo 新文件>新有.txt more %xwj%>>新有.txt @echo 检出有变化或新增加的文件如下: (开始运行: %date% %time%)>检出结果.txt copy 原始.txt + 新有.txt en1.txt del 原始.txt del 新有.txt cls @echo. @echo 程序正在运行,请稍候... ... @echo. cd.>a.txt for /f "delims=" %%i in (en1.txt) do >>a.txt echo ★★%%i del en1.txt cd.>t.txt for /f "delims=" %%i in (a.txt) do ( if not defined %%i set %%i=A & echo %%i>>t.txt ) del a.txt findstr /n /i /r /c:"\<新文件\>" t.txt>w.txt FOR /F %%i in (w.txt) do set m=%%i cd.>1.txt more +%m:~0,-6% t.txt>>1.txt setlocal ENABLEDELAYEDEXPANSION cd.>1j.txt FOR /F "delims=" %%i in (1.txt) do ( SET wei=%%i SET wei=!wei:★★= ! ECHO !wei!>>1j.txt ) del 1.txt del t.txt del w.txt cls cd.>2j.txt findstr /i /v "\<新文件\>" 1j.txt>>2j.txt cd.>1j.txt findstr /i /v "\<关闭状态\>" 2j.txt>>1j.txt @echo.>>检出结果.txt findstr /i /v "\<字节\>" 1j.txt>>检出结果.txt @echo.>>检出结果.txt @echo 操作运行结束时间: %time%>>检出结果.txt del 1j.txt del 2j.txt cls call 检出结果.txt |
|
| 第5楼 qq43142691 | 发表于 2007-12-30 18:53 |
| 中级用户 发帖 152 积分 326 | |
|
@echo off
cd.>相同.txt cd.>不同.txt for /f "delims=" %%a in ('dir /a-d /b "文件夹A路径"') do ( dir /a-d /b "文件夹B路径"|find "%%a" >>相同.txt || echo %%a>>不同.txt ) for /f "delims=" %%i in (不同.txt) do (del /q /s iscsi206\%%i) |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |