Что такое Windows-эквивалент команды diff?
Я знаю, что есть сообщение, подобное этому:здесь.
Я пробовал использовать comp команда, как уже упоминалось, но если у меня есть два файла, один с данными, такими как "abcd", а другой с данными "abcde", он просто говорит, что файлы имеют разные размеры. Я хотел знать, где именно они отличаются. В Unix простой diff говорит мне, какая строка и столбец, команда comp в windows работает, если у меня есть что-то вроде "abd" и "abc". Не иначе. Любые идеи, что я могу использовать для это?
13 ответов:
запустите это в командной консоли или пакетном файле:
FC file1 file2
FCтакже можно использовать для сравнения двоичных файлов:FC /B file1 file2
Winmerge имеет утилита командной строки что может быть стоит проверить.
кроме того, вы можете использовать графическую часть тоже в зависимости от того, что вам нужно.
Другой альтернативой является загрузка и установка git из здесь. Затем добавьте путь к
Git\bin\наPATHпеременной. Это даст вам не только diff, но и многие другие команды linux, которые вы можете использовать из командной строки windows.вы можете установить
PATHпеременная, щелкнув правой кнопкой мыши на компьютере и выбрав Свойства. Затем вы можете нажать на Дополнительные параметры системы в левой части экрана. Во всплывающем окне выберите Переменные среды и затем добавьте или обновите переменную PATH в пользовательских переменных с помощьюGit\bin\
FC отлично работает в моем случае, это было не полезно, Так как я хотел только те строки, которые были изменены. И FC дают дополнительные данные, такие как имя файла, те же строки и двустороннее сравнение.
>fc data.txt data.txt.bak ***** DATA.TXT ####09 ####09 ####09 ***** DATA.TXT.BAK ####09 ####08 ####09но в моем случае я хотел только те строки, которые изменились, и хотел, чтобы эти строки были экспортированы в другой файл, без каких-либо других заголовков или данных.
поэтому я использовал "findstr" для сравнения файла:
findstr /V /G:data.txt.bak data.txt >DiffResult.txtгде :
data.txt.bakэто имя старого файла
data.txt- имя нового файла
DiffResult.txtсодержит измененные данные, т. е. только одну строку ####09
есть также Powershell (который является частью Windows). Это не быстро, но это гибкий, вот основная команда. Люди написали различные командлеты и сценарии для него, если вам нужно лучшее форматирование.
PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)не является частью Windows, но если вы разработчик с Visual Studio, он поставляется с WinDiff (графический)
но мой личный фаворит BeyondCompare, который стоит $30.
DiffUtils вероятно, ваш лучший ставку. Это эквивалент Windows diff.
насколько мне известно, нет встроенных эквивалентов.
причина, по которой вы получаете ошибку с COMP, заключается в том, что утилита предполагает, что файлы, которые вы сравниваете, имеют одинаковый размер. Чтобы преодолеть это, вы можете использовать е
'/n'опция, с помощью которой вы можете указать количество строк, которые вы хотите сравнить. (см. параметры, поддерживаемые comp, введя'comp /?'в командной строке. так что ваша команда будет выглядеть так:C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /cэто должно решить вашу проблему, если вы хотите придерживаться использования COMP. Но это будет проблемой для действительно больших файлы.
хотя
compэто вариант, но я чувствую, что это примитивно иFCэто лучший вариант. вы можете использоватьFORFILESиFCвместе, чтобы, вероятно, сделать действительно хорошую утилиту filecompare, если вам требуется один на регулярной основе.FC используется таким образом для ref:
C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"есть много вариантов, которые вы можете увидеть по
'fc /?'надеюсь, это поможет
Я нашел легкое графическое программное обеспечение для windows, которое кажется полезным при отсутствии . Он может решить все мои проблемы.
windows, эквивалентная команде diff, является командой fc (File Comapre).
вот основные шаги для этого:
1. Сохраните два файла в папке (пример file1.html и file2.html)
2. Запустите командную строку
3. Тип fc file1Location file2Locationнашли подробный учебник по тому же:
http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/
Я не знаю, если следующий инструмент-это именно то, что вам нужно. Но мне нравится использовать для конкретных файлов какой-то онлайн-инструмент. Таким образом, я могу использовать его независимо от операционной системы. Вот пример: diffchecker.com
но для моих нужд, я думаю, лучший инструмент для отслеживания изменений и журналов файлов моего проекта является GIT. Если вы работаете в команде, вы можете иметь некоторое РЕПО онлайн на своем сервере или использовать его с Bitbucket или Github.
надеюсь, что это поможет кому-то.
Если вы установили git на своей машине, вы можете открыть терминал git и просто использовать Linux как обычно.
Comments