sirve - ¿Cómo hacer "diff-r" de UNIX en Windows Cmd Prompt?
para que sirve el cmd (9)
Solución parcial con ROBOCOPY
Una solución parcial (y, por tanto, para mí desafortunadamente una "falta de solución", aunque tenía muchas esperanzas al principio), que puede o no ser suficiente para usted:
Parece que la herramienta ROBOCOPY puede ser (ab-) utilizada para funcionar como una comparación recursiva de un hombre pobre ; con la desafortunada limitación, que aparentemente no compara el contenido del archivo . Parece comparar tamaños, fechas y opcionalmente atributos . El conjuro mágico para esto sería:
ROBOCOPY path1 path2 /e /l /ns /njs /njh /ndl /fp /log:result.txt /it
donde parece que las opciones son:
-
/e
- recurse, incluidos los directorios vacíos; -
/l
- solo imprime un registro, no modifica archivos; -
/ns /njs /njh
- no imprime tamaños de archivo, resumen de trabajo, encabezado de trabajo; -
/ndl
- "no registrar nombres de carpeta"- NOTA: esto, según los informes, dará como resultado omitir casos de directorios vacíos faltantes / superfluos; si no usas esto, debes iniciar sesión, pero deberás eliminar de alguna manera los directorios no diferentes por otros medios;
-
/log:result.txt
- escriba los resultados en el archivo ''result.txt''; Creo que esto se puede omitir y el resultado se mostrará en la salida estándar.
Opciones adicionales:
-
/it
- Creo que esto debería agregarse si quiere comparar atributos también - vea una explicación sobre qué archivos "ajustados" son .
Advertencia: NO compara el contenido del archivo
Como dije antes, esto parece no comparar el contenido del archivo, desafortunadamente. Lo verifiqué ejecutando primero el siguiente comando:
mkdir d1/a/b d2/a/b & echo x > d1/a/b/f & echo y > d2/a/b/f
La mayoría de las veces, esto debería producir archivos d1 / a / b / f y d2 / a / b / f con las mismas marcas de tiempo, puede verificar con dir d1/a/b/f d2/a/b/f
. La llamada de robocopy
en d1 y d2 produjo un conjunto de resultados vacío para mí.
¿Cómo comparo dos directorios en el indicador de cmd de Windows m / c? Quiero el equivalente de diff -r de UNIX.
El comando comp para Windows es lo que estás buscando.
Aquí el ejemplo:
Para comparar los contenidos del directorio C: / Informes con el directorio de copia de seguridad // Sales / Backup / April, escriba:
comp c:/reports //sales/backup/april
En Windows 10 puede ejecutar el comando diff
en bash
habilitando Linux Bash Shell
En Windows está el comando fc
. Creo que diff
es mucho mejor, pero si quieres usar solo lo que vino con la instalación, ¡aquí tienes! :)
La forma más fácil sería descargar diff para Windows: http://gnuwin32.sourceforge.net/packages/diffutils.htm
También podría hacer algo como:
dir directory1 > dir1
dir directory2 > dir2
comp dir1 dir2
Además, algunas versiones de Windows vienen con windiff
, sin embargo, eso es una herramienta GUI
Para comparar datos con el símbolo del sistema, puede usar
COMP / a / l D: / Folder1 / data.txt D: / Folder2 / data.txt
Puede haber diferentes opciones, como números específicos de líneas para buscar y búsqueda insensible a mayúsculas y minúsculas, e incluso puede comparar carpetas con el símbolo del sistema. Aquí hay otras opciones para comparar archivos y carpetas con el símbolo del sistema .
Puede instalar Gow, y puede ejecutar diff en el Símbolo del sistema de Windows.
Puede utilizar la utilidad windiff incluida en Windows desde la versión NT y posteriores. Simplemente ejecute ''windiff'' y aparecerá una herramienta gráfica.
Archivo -> Comparar directorios
http://msdn.microsoft.com/en-us/library/aa266122(VS.60).aspx
Este artículo describe cómo usarlo desde la línea de comandos. El gran beneficio de esta herramienta es que ya está incluida y no necesita descargar e instalar nada.
Instale Cygwin y puede usar diff -r
en Windows.