两列?分别以什么为分隔的?不同就输出?输出a的还是b的第二列?你没有具体说明。文本是什么编码?是否含有敏感字符?比较时,是否忽略大小写?
@echo off&setlocal enabledelayedexpansion
for /F "tokens=1*" %%i in (b.txt) do set "@%%j=%%i"
for /F "tokens=1*" %%i in (a.txt) do if defined @%%j (if /i not "%%i"=="!@%%j!" >>dif.txt echo.%%j) else >>nofind.txt echo.%%j
说明:以空格和制表符分隔两个文本,忽略敏感字符问题,编码为ANSI,比较忽略大小写。