Я знаю, что есть сообщение, подобное этому: здесь.
Я попытался использовать команду comp
, как он упоминал, но если у меня есть два файла, один с данными типа "abcd", а другой с данными "abcde", он просто говорит, что файлы имеют разные размеры. Я хотел знать, где именно они отличаются. В Unix простой diff сообщает мне, какая строка и столбец, команда comp в окнах работает, если у меня есть что-то вроде "abd" и "abc". Не иначе. Любые идеи, что я могу использовать для этого?
Что такое эквивалент Windows для команды diff?
Ответ 1
Запустите это в оболочке CMD или пакетном файле:
FC file1 file2
FC
также может использоваться для сравнения двоичных файлов:
FC /B file1 file2
Ответ 2
Ну, в Windows я с радостью запускаю diff
и многие другие инструменты GNU. Вы можете сделать это с помощью cygwin, но я лично предпочитаю GnuWin32, поскольку это гораздо более легкий опыт установки.
Итак, я отвечаю, что эквивалент Windows diff
- это не что иное, как diff
!
Ответ 3
У Winmerge есть утилита командной строки которая может быть проверена.
Кроме того, вы также можете использовать графическую часть его в зависимости от того, что вам нужно.
Ответ 4
Другой вариант - загрузить и установить git из http://git-scm.com/downloads. Затем добавьте путь к Git\bin\к вашей переменной PATH. Это даст вам не только diff, но и многие другие команды linux, которые вы можете использовать в командной строке Windows.
Ответ 5
к. fc лучше обрабатывает большие файлы ( > 4 ГБ), чем Cygwin diff.
Ответ 6
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
Ответ 7
Там также Powershell (который является частью Windows). Это не быстро, но гибко, вот основная команда. Люди написали для этого различные командлеты и сценарии, если вам нужно лучшее форматирование.
PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)
Не является частью Windows, но если вы являетесь разработчиком Visual Studio, он поставляется с WinDiff (графическим)
Но моим личным фаворитом является BeyondCompare, стоимость которого составляет 30 долларов.
Ответ 8
DiffUtils, вероятно, лучший выбор. Это эквивалент Windows.
Насколько я знаю, нет встроенных эквивалентов.
Ответ 9
Причина, по которой вы получаете ошибку с 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 используется таким образом для ссылки:
C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"
есть много доступных опций, которые вы можете увидеть на 'fc /?'
надеюсь, что это поможет
Ответ 10
Я нашел легкое графическое программное обеспечение для окон, которое кажется полезным при отсутствии команды diff
. Это может решить все мои проблемы.
Ответ 11
Окнами, эквивалентными команде 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/
Ответ 12
Я не знаю, действительно ли следующий инструмент - то, что вам нужно. Но мне нравится использовать для определенных файлов некоторые онлайн-инструменты. Таким образом, я могу использовать его независимо от операционной системы. Вот пример: diffchecker.com
Но для моих нужд я считаю, что лучший инструмент для отслеживания изменений и журналов моих файлов проекта - GIT. Если вы работаете в команде, у вас может быть репо онлайн на вашем сервере или использовать его с Bitbucket или Github.
Надеюсь, это поможет кому-то.
Ответ 13
Если вы установили git на свой компьютер, вы можете открыть терминал git и просто использовать команду Linux diff
как обычно.