Eu sei que existe um post semelhante a este: aqui .
Eu tentei usar o comp
comando como mencionado, mas se eu tiver dois arquivos, um com dados como "abcd" e outro com dados "abcde", apenas diz que os arquivos são de tamanhos diferentes. Eu queria saber onde exatamente eles diferem. No Unix, o diff simples me diz qual linha e coluna, o comando comp no Windows funciona se eu tiver algo como "abd" e "abc". Não de outra forma. Alguma idéia do que eu possa usar para isso?
284
FC path1\* FC path2\*
compararia todos os arquivos nas pastaspath1
epath2
, desde que (os arquivos) tivessem nomes idênticos. Se houver arquivos com nomes incompatíveis, o FC reportará um arquivo ausente, mas apenas para os arquivos da primeira pasta que não estão disponíveis. . 't encontrado na segunda pasta e não o contrário para pegar todos os desencontros, provavelmente seria necessária uma técnica diferente.files in both directories are diff'd; files in only one directory throw errors.
" Interessante. Mas certamente há um programa de terceiros equivalente ao diff?Bem, no Windows, eu corro feliz
diff
e muitas outras ferramentas GNU. Você pode fazer isso com o cygwin , mas eu pessoalmente prefiro o GnuWin32 porque é uma experiência de instalação muito mais leve.Portanto, minha resposta é que o equivalente do Windows
diff
não é outro senãodiff
ele mesmo!fonte
diffutils
. Veja cygwin.com/cgi-bin2/…O Winmerge possui um utilitário de linha de comando que pode valer a pena conferir.
Além disso, você também pode usar a parte gráfica, dependendo do que você precisa.
fonte
Outra alternativa é baixar e instalar o git a partir daqui . Em seguida, adicione o caminho
Git\bin\
para suaPATH
variável. Isso fornecerá não apenas diff, mas também muitos outros comandos linux que você pode usar na linha de comando do Windows.Você pode definir a
PATH
variável clicando com o botão direito do mouse em Computador e selecionando Propriedades. Depois, você pode clicar em Configurações avançadas do sistema, no lado esquerdo da tela. No pop-up, clique em Variáveis de ambiente e adicione ou atualize a variável PATH nas suas variáveis de usuário comGit\bin\
Documentação do diff do Git
fonte
git...
executáveis disponíveis no PATH. Além disso, a resposta provavelmente deve incluir uma informação importante: você precisa iniciar a ferramenta diff escrevendogit diff
, não apenasdiff
.diff
O FC funciona muito bem no meu caso, não foi útil, pois eu queria apenas as linhas que foram alteradas. E o FC fornece dados adicionais, como nome de arquivo, mesmas linhas e comparação bilateral.
mas, no meu caso, queria apenas as linhas que foram alteradas e queria que essas linhas fossem exportadas para um arquivo diferente, sem nenhum outro cabeçalho ou dados.
Então eu usei "findstr" para comparar o arquivo:
Onde :
data.txt.bak
é o nome do arquivo antigodata.txt
é o nome do novo arquivoDiffResult.txt
contém os dados que são alterados, ou seja, apenas uma linha #### 09fonte
fc. fc é melhor para lidar com arquivos grandes (> 4 GBytes) do que o diff do Cygwin.
fonte
Há também o Powershell (que faz parte do Windows). Não é rápido, mas é flexível, eis o comando básico. As pessoas criaram vários cmdlets e scripts para isso, se você precisar de uma formatação melhor.
Não faz parte do Windows, mas se você é desenvolvedor do Visual Studio, ele vem com o WinDiff (gráfico)
Mas o meu favorito é o BeyondCompare, que custa US $ 30.
fonte
DiffUtils é provavelmente a sua melhor aposta. É o equivalente do Windows ao diff.
Que eu saiba, não há equivalentes embutidos.
fonte
A razão pela qual você obteve o erro com o COMP é que o utilitário assume que os arquivos que você está comparando são do mesmo tamanho. Para superar isso, você pode usar a
'/n'
opção com a qual pode especificar o número de linhas que deseja comparar. (veja as opções suportadas pelo comp digitando'comp /?'
na linha de comando. para que seu comando se pareça com:Isso deve resolver seu problema se você quiser usar o COMP. Mas isso será um problema para arquivos muito grandes.
Embora
comp
seja uma opção, mas eu acho que é primitivo eFC
é uma opção melhor. você pode usarFORFILES
e,FC
juntos, provavelmente fazer um utilitário de comparação de arquivos realmente bom, se precisar de um com frequência.FC é usado desta maneira para ref:
existem muitas opções disponíveis que você pode ver na
'fc /?'
esperança de que isso ajudefonte
Encontrei um software gráfico leve para Windows que parece ser útil por falta de
diff
comando. Isso poderia resolver todos os meus problemas.WinDiff http://www.grigsoft.com/download-windiff.htm
fonte
A janela equivalente ao comando diff é o comando fc (File Comapre).
Aqui estão as etapas básicas para fazer isso:
1. Mantenha os dois arquivos em uma pasta (exemplo file1.html e file2.html)
2. Inicie o prompt de comando
3. Digite fc file1Location file2Location
Encontrou um tutorial detalhado sobre o mesmo:
http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/
fonte
Não sei se a ferramenta a seguir é exatamente o que você precisa. Mas eu gosto de usar, para arquivos específicos, alguma ferramenta online. Dessa forma, eu posso usá-lo independentemente do sistema operacional. Aqui está um exemplo: diffchecker.com
Mas, para as minhas necessidades, acho que a melhor ferramenta para rastrear alterações e logs dos arquivos do meu projeto é o GIT. Se você trabalha em equipe, pode ter alguns repositórios on-line em um servidor seu ou usá-lo com o Bitbucket ou o Github.
Espero que ajude alguém.
fonte
Se você instalou o git em sua máquina, poderá abrir um terminal git e apenas usar o
diff
comando Linux normalmente.fonte