标题: [求助]文本对比的新问题
[打印本页]
作者: w1314ich
时间: 2007-12-30 14:42
标题: [求助]文本对比的新问题
文本1内容:
a
ab
abc
abcd
文本2内容:
a
abr
abc
abcd
abcde
使用批处理对比两个文本内容后输出的结果为:
abr
结果中不包含文本2中的abcde,这是文本2中比1多的内容,为什么不能显示出来呢
作者: greenworld
时间: 2007-12-30 14:58
LZ,这个问题不好回答吧?你用了什么命令才产生这种结果的呢?问题的关键在于你用的命令本身而不是比较的文本文件本身,怎么不发你用的命令内容出来而发文本文件的内容出来呢?
作者: HAT
时间: 2007-12-30 17:18
把你的代码贴出来看看
作者: ZJHJ
时间: 2007-12-30 18:14
我批处理水平不好,写得有点烦琐。希望高手精简!不过是成品哦!
@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
作者: qq43142691
时间: 2007-12-30 18:53
@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)