windows - entre - comparar nombres de archivos
¿Cuál es el equivalente de Windows del comando diff? (13)
Sé que hay un post similar a este: here .
Intenté usar el comando comp
como se mencionó, pero si tengo dos archivos, uno con datos como "abcd" y el otro con datos "abcde", simplemente dice que los archivos son de diferentes tamaños. Quería saber dónde difieren exactamente. En Unix, el simple diff me dice qué fila y columna, el comando comp en Windows funciona si tengo algo como "abd" y "abc". De otro modo no. ¿Alguna idea de qué puedo usar para esto?
Ejecuta esto en el shell CMD o en el archivo por lotes
FC file1 file2
FC
también se puede utilizar para comparar archivos binarios:
FC /B file1 file2
El equivalente de Windows al comando diff es el comando fc (File Comapre).
Aquí están los pasos básicos para hacerlo:
1. Mantenga los dos archivos en una carpeta (Ejemplo file1.html y file2.html)
2. Iniciar el símbolo del sistema
3. Escribe fc file1Location file2Location
Han encontrado un tutorial detallado sobre el mismo:
http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/
FC funciona muy bien en mi caso, no fue útil ya que solo quería las líneas que se han cambiado. Y FC da datos adicionales como nombre de archivo, mismas líneas y comparación bilateral.
>fc data.txt data.txt.bak
***** DATA.TXT
####09
####09
####09
***** DATA.TXT.BAK
####09
####08
####09
pero en mi caso solo quería las líneas que han cambiado y quería que esas líneas se exportaran a un archivo diferente, sin ningún otro encabezado o datos.
Así que usé "findstr" para comparar el archivo:
findstr /V /G:data.txt.bak data.txt >DiffResult.txt
dónde :
data.txt.bak
es el nombre del archivo antiguo
data.txt
es el nombre del nuevo archivo
DiffResult.txt
contiene los datos que se modifican, es decir, solo una línea #### 09
He encontrado un software gráfico ligero para Windows que parece ser útil en la falta del comando diff
. Podría resolver todos mis problemas.
La razón por la que obtiene el error con COMP es que la utilidad asume que los archivos que está comparando son del mismo tamaño. Para superar esto, puede usar la opción ''/n''
con la que puede especificar el número de líneas que desea comparar. (vea las opciones admitidas por comp al escribir ''comp /?''
en la línea de comando, para que su comando se vea como:
C:/>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c
Esto debería resolver su problema si desea seguir usando COMP. Pero esto será un problema para archivos realmente grandes.
Aunque comp
es una opción, pero creo que es primitiva y FC
es una mejor opción. puede utilizar FORFILES
y FC
juntos para hacer una utilidad de archivos realmente buena si la necesita con frecuencia.
FC se utiliza de esta manera para ref:
C:/>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"
Hay muchas opciones disponibles que puedes ver por ''fc /?''
espero que esto ayude
No sé si la siguiente herramienta es exactamente lo que necesitas. Pero me gusta usar, para archivos específicos, alguna herramienta en línea. De esta manera puedo usarlo independientemente del sistema operativo. Aquí hay un ejemplo: diffchecker.com
Pero para mis necesidades, creo que la mejor herramienta para rastrear cambios y registros de los archivos de mi proyecto es GIT. Si trabajas en un equipo, puedes tener un repositorio en línea en un servidor tuyo o usarlo con Bitbucket o Github.
Espero que ayude a alguien.
Otra alternativa es descargar e instalar git desde here . Luego, agregue la ruta a Git/bin/
a su variable PATH
. Esto le dará no solo diff, sino también muchos otros comandos de Linux que puede usar desde la línea de comandos de Windows.
Puede establecer la variable PATH
haciendo clic derecho en Computadora y seleccionando Propiedades. Luego puede hacer clic en Configuración avanzada del sistema en el lado izquierdo de la pantalla. En la ventana emergente, haga clic en Variables de entorno y luego agregue o actualice la variable PATH en sus variables de usuario con Git/bin/
Si ha instalado git en su máquina, puede abrir un terminal de git y simplemente usar el comando diff
Linux de manera normal.
También está Powershell (que es parte de Windows). No es rápido, pero es flexible, aquí está el comando básico. La gente ha escrito varios cmdlets y scripts para ello si necesita un mejor formato.
PS C:/Users/Troll> Compare-Object (gc $file1) (gc $file2)
No es parte de Windows, pero si eres un desarrollador con Visual Studio, viene con WinDiff (gráfico)
Pero mi favorito personal es BeyondCompare, que cuesta $ 30.
Winmerge tiene una utilidad de línea de comandos que vale la pena revisar.
Además, puede utilizar la parte gráfica de la misma también en función de lo que necesite.
fc fc es mejor para manejar archivos grandes (> 4 GBytes) que el diff de Cygwin.
DiffUtils es probablemente tu mejor apuesta. Es el equivalente de Windows de diff.
Que yo sepa, no hay equivalentes incorporados.