68 votos

¿Cómo puedo diff dos archivos de texto en Windows Powershell?

Tengo dos archivos de texto y desea encontrar las diferencias entre ellos el uso de Windows Powershell. Hay algo similar a Unix herramienta de comparación disponibles? O es que hay otra manera yo no he considerado?

He tratado de comparar-objeto, pero este críptico de salida:

PS C:\> compare-object one.txt two.txt

InputObject                                                 SideIndicator
-----------                                                 -------------
two.txt                                                     =>
one.txt                                                     <=

73voto

Brian Willis Puntos839

Imaginé a mí mismo. Porque Powershell funciona con .neto de los objetos en lugar de texto, usted necesita para obtener contenido a exponer el contenido de los archivos de texto. Así que para llevar a cabo lo que yo estaba tratando de hacer en la pregunta, utilice:

compare-object (get-content one.txt) (get-content two.txt)

23voto

phord350 Puntos111

O usted podría utilizar los DOS 'FC' comando como lo muestra la salida de ambos archivos por lo que tendrá que analizar las diferencias):

fc.exe filea.txt fileb.txt > diff.txt

fc es un aliase para el Formato Personalizado de cmdlet así que asegúrese de introducir el comando como fc.exe. Por favor, tenga en cuenta que muchos de los DOS utilidades no manejar la codificación UTF-8

También puede generar un CMD proceso y ejecutar fc dentro de ella.

iniciar cmd "/c ""fc filea.txt fileb.txt >diff.txt"""

Esta instruir PowerShell para iniciar un proceso con el " cmd " programa de uso de los parámetros en las comillas. En la cita, es el "/c " cmd opción para ejecutar el comando y terminar. la orden real para ejecutar cmd en el proceso de "fc filea.txt fileb.txt" redirigir la salida al archivo diff.txt.

Puede utilizar los DOS fc.exe desde dentro de powershell.

20voto

Alex Y. Puntos61

Una manera más sencilla de hacerlo es escribir:

diff (cat file1) (cat file2)

6voto

Mikeage Puntos2106

diff en *nix no es parte de la cáscara, pero una aplicación independiente.

¿Hay alguna razón usted no sólo puede utilizar diff.exe en virtud de PowerShell?

Usted puede descargar una versión de la UnxUtils paquete (http://unxutils.sourceforge.net/)

2voto

TCS Puntos185

WinMerge es otra buena GUI basado en la herramienta de comparación.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: