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



Я знаю, что есть сообщение, подобное этому:здесь.

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

666   13  

13 ответов:

запустите это в командной консоли или пакетном файле:

FC file1 file2

FC также можно использовать для сравнения двоичных файлов:

FC /B file1 file2

ну, на Windows я счастливо бегу diff и многие другие инструменты GNU. Вы можете сделать это с помощью программа, но я лично предпочитаю GnuWin32 потому что это более легкий процесс установки.

Итак, мой ответ заключается в том, что эквивалент Windows diff - Это !

Winmerge имеет утилита командной строки что может быть стоит проверить.

кроме того, вы можете использовать графическую часть тоже в зависимости от того, что вам нужно.

Другой альтернативой является загрузка и установка git из здесь. Затем добавьте путь к Git\bin\ на PATH переменной. Это даст вам не только diff, но и многие другие команды linux, которые вы можете использовать из командной строки windows.

вы можете установить PATH переменная, щелкнув правой кнопкой мыши на компьютере и выбрав Свойства. Затем вы можете нажать на Дополнительные параметры системы в левой части экрана. Во всплывающем окне выберите Переменные среды и затем добавьте или обновите переменную PATH в пользовательских переменных с помощью Git\bin\

git diff documentation

ФК. fc лучше справляется с большими файлами (> 4 Гбайт), чем diff Cygwin.

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, которое кажется полезным при отсутствии . Он может решить все мои проблемы.

WinDiffhttp://www.grigsoft.com/download-windiff.htm

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

    Ничего не найдено.