Подтвердить что ты не робот

Что такое эквивалент Windows для команды diff?

Я знаю, что есть сообщение, подобное этому: здесь.
Я попытался использовать команду comp, как он упоминал, но если у меня есть два файла, один с данными типа "abcd", а другой с данными "abcde", он просто говорит, что файлы имеют разные размеры. Я хотел знать, где именно они отличаются. В Unix простой diff сообщает мне, какая строка и столбец, команда comp в окнах работает, если у меня есть что-то вроде "abd" и "abc". Не иначе. Любые идеи, что я могу использовать для этого?

4b9b3361

Ответ 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. Это может решить все мои проблемы.

WinDiff http://www.grigsoft.com/download-windiff.htm

Ответ 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 как обычно.