批处理BAT 逐项比较两个文本文件

2025-03-24 16:07:06
推荐回答(1个)
回答1:

有个问题是,你的两串字符串,之间的分隔符,如果有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))