2014-11-06 2 views
0

У меня есть два файла, которые содержат список файлов из каталога: files.txt и filesb.txt
file1.txt содержит следующее:Batch File Сравнить (FC) Выход не работает

file1 
file2 
file3 
file4 
file5 
file6 
filelast 

While filesb.txt содержит:

file1 
file2 
file3 
file4 
file5 
file7 
filelast 

Из того, что я понимаю, следующий код партии:

FC C:\Users\[username]\Desktop\files.txt C:\Users\[username]\Desktop\files.txt 

должен вывести это:

Comparing files C:\USERS\[username]\DESKTOP\files.txt and C:\USERS\[username]\DESKTOP\FILESB.TXT 
***** C:\USERS\[username]\DESKTOP\files.txt 
file6 
***** C:\USERS\[username]\DESKTOP\FILESB.TXT 
file7 
***** 

, но вместо этого выдает это:

Comparing files C:\USERS\[username]\DESKTOP\files.txt and C:\USERS\[username]\DESKTOP\FILESB.TXT 
***** C:\USERS\[username]\DESKTOP\files.txt 
file5 
file6 
filelast 
***** C:\USERS\[username]\DESKTOP\FILESB.TXT 
file5 
file7 
filelast 
***** 

Что я могу сделать для вывода только различные файлы, а не окружающие Ones, а? Заранее спасибо!

+0

попробуйте с опцией '/ b', чтобы увидеть различия в шестнадцатеричном формате. Могут быть дополнительные пробелы или вкладки. – npocmaka

ответ

0

Первая и последняя строка каждого набора различий полезна для правильной идентификации каждого набора. Если бы сообщалось о разных строках, у вас могут возникнуть проблемы с идентификацией строки, если файлы были большими и имеют много различий. Однако вы можете получить результат из команды FC и обработать ее любым способом, но это решение не просто, потому что могут быть также вставки новых строк, удаления старых строк или любая комбинация этих случаев.

Некоторое время назад я написал такую ​​программу, которая не только правильно обрабатывала все эти случаи, но также позволяла визуально сравнивать оба файла по горизонтали, используя половину экрана для каждого из них. Например:

C:\> type files.txt 
file1 
file2 
file3 
file4 
file5 
file6 
filelast 

C:\> type filesb.txt 
file1 
file2 
file3 
file4 
file5 
file7 
filelast 

C:\> FComp files.txt filesb.txt 
Comparando archivos files.txt y FILESB.TXT 

============================== SECTION MODIFIED ============================= 

file5         |file5 
file6         |file7 
filelast        |filelast 

C:\> 

Вы можете скачать программу FComp.bat из this site. Вы можете легко изменить эту программу, чтобы подавить отображение первой и последней строк каждого «Модифицированного раздела».

0

Я предлагаю

findstr /x /v /L /g:file1 file2 

, который должен выводить все строки в file2, которые не существуют в file1.