setlocal
:: что сравнивать будет 
set D1=c:\temp
set D2=c:\tmp
:: тут будут уникальные имена записаны
set D1NEW=new1.txt
set D2NEW=new2.txt
 
set TF=%TEMP%\tmpfile%RANDOM%.txt
del /q %D1NEW%
del /q %D2NEW%
del /q %TF%
for /f "tokens=*" %%I in ('dir /b %D2%') do (echo %%~nI)>>%TF%
for /f "tokens=*" %%I in ('dir /b %D1%') do (
 findstr /R /I /C:"^%%~nI$" %TF% 
 if errorlevel 1 (
  (echo %%~nI)>>%D1NEW%
  )
 )
del /q %TF%
for /f "tokens=*" %%I in ('dir /b %D1%') do (echo %%~nI)>>%TF%
for /f "tokens=*" %%I in ('dir /b %D2%') do (
 findstr /R /I /C:"^%%~nI$" %TF% 
 if errorlevel 1 (
  (echo %%~nI)>>%D2NEW%
  )
 )
del /q %TF%
Advertisements