textos texto online documentos contenido comparar comparacion como carpetas binarios archivos file comparison batch-file if-statement

file - texto - comparar dos documentos word online



¿Cómo puedo comparar dos archivos en un archivo por lotes? (3)

Creo que puedes usar el comando "FC" y luego revisar el nivel de error. Aquí hay un código:

@echo off :main fc c:/filename r:/filemame > nul if errorlevel 1 goto error :next echo insert next CD pause goto main :error echo failed check

(Obtenido de http://www.computing.net/answers/dos/batch-file-command/15753.html )

¿Cómo puedo comparar dos archivos en un archivo por lotes y realizar una acción en función de si coinciden o no? He intentado algo como:

if file1.txt NEQ file2.txt goto label

pero compara la cadena real "file1.txt" en lugar del archivo. He leído sobre el comando COMP, pero no parece funcionar si lo puse en una sentencia if. ¿Alguien sabe cómo hacer esto? Lo siento, pero rara vez uso archivos por lotes y tengo poca experiencia en ellos.

Gracias por adelantado.


Parece que el programa COMP es bastante fácil de usar. Ver esta pregunta en las respuestas de Yahoo.

Tenga en cuenta que ejecutando comp /? imprimirá el texto de ayuda para el programa (al igual que especifica el argumento /? con cualquier programa de línea de comandos nativo de Windows). Esto genera el mismo texto que ve en la respuesta de la pregunta vinculada anteriormente.

Contenido de la respuesta de Yahoo:

C:/>comp /? Compares the contents of two files or sets of files. COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]] data1 Specifies location and name(s) of first file(s) to compare. data2 Specifies location and name(s) of second files to compare. /D Displays differences in decimal format. /A Displays differences in ASCII characters. /L Displays line numbers for differences. /N=number Compares only the first specified number of lines in each file. /C Disregards case of ASCII letters when comparing files. /OFF[LINE] Do not skip files with offline attribute set. To compare sets of files, use wildcards in data1 and data2 parameters.


Utilizo el siguiente ejemplo para crear informes basados ​​en diferencias de archivos:

set %Batch_Work_Space_Dir%=folder for your batch file and temp resource files set file_1=name of file set file_2=name of file fc %file_1% %file_1%t > %Batch_Work_Space_Dir%/Are_They_Different.txt powershell -command "(Get-Content %Batch_Work_Space_Dir%/Are_They_Different.txt) | select -skip 1 | Set-Content %Batch_Work_Space_Dir%/Are_They_Different.txt" set /p Diff_Found=<%Batch_Work_Space_Dir%/Are_They_Different.txt if %Diff_Found:~0,17%" == "FC: no difference" ( execute commands )