Что такое Windows-эквивалент команды diff?
Я знаю, что есть сообщение, подобное этому:здесь.
Я попытался использовать comp
команда, как упоминалось, но если у меня есть два файла, один с данными, такими как "abcd", а другой с данными "abcde", он просто говорит, что файлы имеют разные размеры. Я хотел знать, чем именно они отличаются. В Unix простой diff говорит мне, какая строка и столбец, команда comp в windows работает, если у меня есть что-то вроде "abd" и "abc". Не иначе. Любые идеи, что я могу использовать для это?
13 ответов
запустите это в командной консоли CMD или пакетном файле:
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
содержит измененные данные i.e только одна строка ### # 09
есть также Powershell (который является частью Windows). Это не быстро, но это гибко, вот основная команда. Люди написали для него различные командлеты и скрипты, если вам нужно лучшее форматирование.
PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)
не является частью Windows, но если вы разработчик с Visual Studio, он поставляется с WinDiff (графический)
но мой личный фаворит BeyondCompare, который стоит $30.
DiffUtils вероятно, ваш лучший ставку. Это эквивалент diff для Windows.
насколько мне известно, нет встроенных эквивалентов.
причина, по которой вы получаете ошибку с 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, которое кажется полезным при отсутствии . Это могло бы решить все мои проблемы.
средство windiff http://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/
Я не знаю, является ли следующий инструмент exatly, что вам нужно. Но мне нравится использовать для определенных файлов какой-то онлайн-инструмент. Таким образом, я могу использовать его независимо от операционной системы. Вот пример: diffchecker.com
но для моих нужд, я думаю, лучший инструмент для отслеживания изменений и журналов файлов моего проекта-GIT. Если вы работаете в команде, вы можете иметь некоторое РЕПО онлайн на своем сервере или использовать его с Bitbucket или Github.
надеюсь, это кому-то поможет.
Если вы установили git на свой компьютер, вы можете открыть терминал git и просто использовать Linux как обычно.