Используя полноценный инструмент сравнения, такой как diffmerge или kdiff3 (оба бесплатны), вы можете легко проверить различия, сравнив выходные файлы следующего пакетного файла. На самом деле вам нужно предоставить две директории в качестве аргументов, но вы также можете установить их непосредственно в строках SET dir...
- например, SET dir1=c:\svn
и SET dir2=c:\hg
. Скрипт удаляет префикс пути из имен файлов, которые в противном случае отличались бы по всем строкам.
@ECHO OFF
SetLocal EnableDelayedExpansion
SET dir1=%1
SET dir2=%2
ECHO. 2>dir1.txt
ECHO. 2>dir2.txt
FOR /f "tokens=*" %%F IN ('DIR /s /b /o:n %dir1%') DO (
SET tmp=%%F
ECHO !tmp:%dir1%\=! >> dir1.txt
)
FOR /f "tokens=*" %%F IN ('DIR /s /b /o:n %dir2%') DO (
SET tmp=%%F
ECHO !tmp:%dir2%\=! >> dir2.txt
)
EndLocal
Затем просто введите два выходных файла:dir1.txt
и dir2.txt
:
kdiff3 dir1.txt dir2.txt