批处理BAT 逐项比较两个文本文件
哥们姐们弟们妹们好,挑战各位能力的时刻到了:)现有两个文本文件,希望通过批处理BAT进行逐项比较1)比较行1的日期是否相同2)抽取文件一里的行2的文件名如D:\Data\...
哥们姐们弟们妹们好,
挑战各位能力的时刻到了 :)
现有两个文本文件,希望通过批处理BAT 进行逐项比较
1)比较行1的日期是否相同
2)抽取文件一里的行2的文件名 如 D:\Data\SubFolder\AA.TXT 以及 MD5 数值 在 文件二 找到对应的项并进行对比, 如果不一样则输出日志 继续比对文件一中下一行
谢谢 哥姐弟妹..万分感谢
文件一
H20130909T172911
0204994AA73D985934218A2A7B84E45A D:\Data\SubFolder\AA.TXT
ADCFD32A04510629FD757073E78DA5B7 D:\Data\A.TXT
A85C0009F7778E76F018989C45D64722 D:\Data\SubFolder\SubSubFolder\BBB.TXT
09C682435AFEC630371F3F3D616B671B D:\Data\SubFolder\SubSubFolder\AAA.TXT
T4
文件二
H20130909T182012
ADCFD32A04510629FD757073E78DA5B7 D:\Data\A.TXT
0204994AA73D985934218A2A7B84E45A D:\Data\SubFolder\AA.TXT
09C682435AFEC630371F3F3D616B671B D:\Data\SubFolder\SubSubFolder\AAA.TXT
A85C0009F7778E76F018989C45D64722 D:\Data\SubFolder\SubSubFolder\BBB.TXT
T4
尝试了 findstr /ivg:"F1.txt" "F2.txt"
可惜把头也给对比了
D:\>findstr /ivg:"F1.txt" "F2.txt"
H20130909T172911 展开
挑战各位能力的时刻到了 :)
现有两个文本文件,希望通过批处理BAT 进行逐项比较
1)比较行1的日期是否相同
2)抽取文件一里的行2的文件名 如 D:\Data\SubFolder\AA.TXT 以及 MD5 数值 在 文件二 找到对应的项并进行对比, 如果不一样则输出日志 继续比对文件一中下一行
谢谢 哥姐弟妹..万分感谢
文件一
H20130909T172911
0204994AA73D985934218A2A7B84E45A D:\Data\SubFolder\AA.TXT
ADCFD32A04510629FD757073E78DA5B7 D:\Data\A.TXT
A85C0009F7778E76F018989C45D64722 D:\Data\SubFolder\SubSubFolder\BBB.TXT
09C682435AFEC630371F3F3D616B671B D:\Data\SubFolder\SubSubFolder\AAA.TXT
T4
文件二
H20130909T182012
ADCFD32A04510629FD757073E78DA5B7 D:\Data\A.TXT
0204994AA73D985934218A2A7B84E45A D:\Data\SubFolder\AA.TXT
09C682435AFEC630371F3F3D616B671B D:\Data\SubFolder\SubSubFolder\AAA.TXT
A85C0009F7778E76F018989C45D64722 D:\Data\SubFolder\SubSubFolder\BBB.TXT
T4
尝试了 findstr /ivg:"F1.txt" "F2.txt"
可惜把头也给对比了
D:\>findstr /ivg:"F1.txt" "F2.txt"
H20130909T172911 展开
推荐于2016-02-03
展开全部
有个问题是,你的两串字符串,之间的分隔符,如果有Tab则请自己添加。此处用的空格。
还有你说的是文件日期,所以没比较时间。你的问题可能不够明确。
@echo off&setlocal enabledelayedexpansion&echo 0>日志.log>nul
set F1=文件一.txt
set F2=文件二.txt
for /f "tokens=1,* delims= " %%i in ('type "%F1%"') do (set /a m+=1 &set n=0
set s1=%%i
set s11="%%~nxj"
if "!s1:~4,1!"=="" echo 完成&&pause>nul&&exit
for /f "tokens=1,* delims= " %%a in ('type "%F2%"') do (set /a n+=1
set s2=%%a
set s22="%%~nxb"
if !m!==1 if !n!==1 if not "!s1:~1,8!"=="!s2:~1,8!" echo 日期不同:!s1! !s2!>>日志.log
if not !m!==1 if not !s22!=="" if /i !s11!==!s22! if not !s1!==!s2! echo 校验不同 "%%j %%b">>日志.log))
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询