Cómo comparar dos archivos con el comando fc en Windows

Última actualización: 14/08/2025
Autor: Isaac
  • El comando fc compara archivos en modo texto (ASCII/Unicode) o binario con opciones para ignorar mayúsculas, espacios y tabs.
  • Parámetros clave: /a (salida abreviada), /b (binario), /w (comprimir espacios), /n (números de línea), /lb<n> (buffer) y /<nnnn> (resincronización).
  • Admite comodines y devuelve códigos de salida (0 iguales, 1 distintos, 2 error); existen alternativas como Windiff y Comp.

Comparar archivos con el comando fc en Windows

Si trabajas a diario con Windows y te preocupa detectar cambios entre versiones de documentos, scripts o binarios, el comando fc es una herramienta eficiente que te ahorra tiempo al mostrar con precisión dónde difieren dos archivos. Esta utilidad integrada compara contenidos y resalta discrepancias tanto en modo texto (ASCII/Unicode) como a nivel de bytes (binario).

Más allá del uso básico, fc ofrece parámetros potentes para adaptar la comparación a tus necesidades: ignorar mayúsculas/minúsculas, comprimir espacios, numerar líneas, gestionar pestañas, trabajar con comodines o ajustar la resincronización. Dominando estas opciones podrás evaluar diferencias reales y evitar falsos positivos debidos al formato o al espaciado.

Qué es fc y dónde está disponible

El objetivo de fc es directo: comparar dos archivos o conjuntos de archivos y mostrar las diferencias. Es una herramienta del ecosistema Windows que viene como ejecutable tradicional, y en muchos equipos se ubica en C:\WINDOWS\fc.exe. En PowerShell existe un alias llamado fc que apunta a Format-Custom; por eso, para evitar conflictos en PowerShell, conviene ejecutar explícitamente fc.exe cuando quieras comparar ficheros.

En distintas fuentes se indica que fc está disponible en Windows 12, 11, 10 y en ediciones de servidor como MS Server 2025, 2022 o 2019. Además, existen implementaciones en otros entornos como FreeDOS, con un conjunto de opciones ampliado y algunos comportamientos propios que también comentaremos más abajo.

Uso del comando fc para comparar archivos

Sintaxis del comando fc

La sintaxis canónica en Windows cubre comparaciones en texto y en binario. Encontrarás dos formas principales, una para modo ASCII/Unicode y otra para modo binario:

fc /a     ]     <archivo1> <archivo2>
fc /b <archivo1> <archivo2>

En términos prácticos, archivo1 y archivo2 son obligatorios, con sus rutas si procede, y a partir de ahí eliges las opciones que encajen con tu comparación. Para ver la ayuda integrada, usa fc /? en la consola de comandos (CMD).

Parámetros y opciones más útiles (Windows)

El conjunto de modificadores te permite controlar al detalle el análisis. Estos son los más relevantes en el fc de Windows documentado:

  • /a: salida abreviada para comparaciones de texto. En lugar de listar todas las líneas distintas, muestra sólo la primera y la última línea de cada bloque de diferencias.
  • /b: modo binario, compara byte a byte sin resincronizar tras el primer desajuste. Es el modo predeterminado si las extensiones son .exe, .com, .sys, .obj, .lib o .bin.
  • /c: ignora diferencias de mayúsculas/minúsculas durante la comparación de texto.
  • /l: modo texto ASCII, compara línea a línea e intenta resincronizar tras un desajuste. Es el modo por defecto para archivos de texto.
  • /lb<n>: establece el tamaño del buffer interno de líneas en número de líneas. Por defecto son 100 líneas; si hay más de 100 líneas consecutivas diferentes, fc cancela la comparación.
  • /n: muestra números de línea durante una comparación ASCII.
  • /off: incluye archivos con el atributo «sin conexión», que de otro modo se omiten.
  • /t: no convierte tabulaciones en espacios. El comportamiento por defecto es tratar las tabs como espacios con parada cada 8 columnas.
  • /u: compara archivos como texto Unicode.
  • /w: comprime espacios en blanco (pestañas y espacios) al comparar. Con /w, fc trata secuencias largas de espacios como uno solo e ignora espacios al inicio y al final de línea.
  • /<nnnn>: número de líneas consecutivas que deben coincidir después de una diferencia para considerar que los archivos se han vuelto a sincronizar. El valor por defecto es 2.
  • Rutas y nombres (archivo): indican la localización de los ficheros a comparar; ambos nombres son obligatorios.
  • /?: muestra la ayuda en la consola.
  Guía Completa para Crear un Videojuego en Excel desde Cero

Cuando haces una comparación ASCII, fc da formato a la salida con un patrón concreto para que entiendas de un vistazo qué cambió. El orden típico es: nombre del primer archivo, líneas distintas del primero, primera línea que coincide en ambos, nombre del segundo archivo, líneas distintas del segundo y primera línea que vuelve a coincidir.

En comparaciones binarias, los desajustes se muestran con un formato de dirección y bytes que difieren. La notación que verás sigue el esquema:

<XXXXXXXX: YY ZZ>

Aquí, XXXXXXXX es la dirección relativa en hexadecimal desde el inicio del archivo, y YY/ZZ son los valores hexadecimales diferentes en archivo1 y archivo2 respectivamente. Las direcciones empiezan en 00000000 y van avanzando a medida que fc recorre los bytes.

Comodines, buffer y mensajes especiales

Fc admite comodines (* y ?) en los nombres de archivo. Si usas un comodín en el primer argumento, comparará todos los archivos que encajen con el patrón contra el archivo (o conjunto) indicado en el segundo argumento. Si el comodín está en el segundo argumento, fc reutiliza el nombre correspondiente del primero.

Para comparaciones ASCII, fc usa un buffer interno capaz de alojar 100 líneas por defecto. Si los archivos superan ese tramo sin poder resincronizar con coincidencias, fc se detiene y muestra:

Resynch failed. Files are too different.

Cuando comparas archivos binarios más grandes que la memoria disponible, fc no falla: procesa ambos por partes, superponiendo la siguiente porción en memoria y mantiene la misma salida que si cupieran por completo.

Ejemplos prácticos de uso

Comparar dos informes de texto y ver el resultado abreviado es tan sencillo como lanzar: en modo ASCII con resumen de bloques de diferencias:

fc /a monthly.rpt sales.rpt

Si quieres comparar dos archivos por lotes en binario y ver las direcciones donde difieren los bytes, prueba:

fc /b profits.bat earnings.bat

La salida puede incluir líneas como direcciones y bytes en hexadecimal, y si uno es más largo aparecerá un aviso del tipo FC: earnings.bat longer than profits.bat. Si ambos ficheros son idénticos, fc indicará que no hay diferencias con un mensaje similar a:

Comparing files profits.bat and earnings.bat
FC: no differences encountered

También puedes cruzar un archivo con todos los .bat del directorio actual:

fc *.bat new.bat

O comparar un archivo con su homónimo en otra unidad:

fc c:new.bat d:*.bat

Y para emparejar por nombre todos los .bat del raíz de C: con los de D:

fc c:*.bat d:*.bat

Trabajar desde CMD paso a paso

Si prefieres un recorrido guiado, puedes abrir el Símbolo del sistema como administrador, moverte a la carpeta de trabajo y ejecutar las comparaciones. Ejemplo:

  • Abrir CMD con permisos elevados desde el buscador.
  • Navegar a la carpeta que contiene los archivos, por ejemplo: cd C:\Users\tuusuario\Downloads.
  • Comparar en modo normal (texto): fc archivo1.txt archivo2.txt.
  • Comparar en ASCII (línea por línea): fc /L archivo1.txt archivo2.txt.
  • Ver bloques resumidos cuando sólo cambia la primera línea: fc /a archivo1.txt archivo2.txt.
  • Comparar en Unicode cuando proceda: fc /u archivo1.txt archivo2.txt.
  • Aplicar comodines para contrastar muchos TXT con un archivo: fc *.txt archivo1.txt.

Ten presente que si ejecutas estos comandos en PowerShell, para evitar el alias a Format-Custom, usa fc.exe explícitamente (por ejemplo, fc.exe /a ...). Así te aseguras de invocar el comparador de archivos.

  Cómo cambiar el nombre del propietario registrado en Windows 11 fácil y sin errores

Diferencias clave: ASCII/Unicode vs binario

En modo ASCII o Unicode, fc entiende el concepto de línea y permite numerarlas (/n), ignorar mayúsculas/minúsculas (/c), compactar espacios (/w) o respetar tabs (/t). Esto es ideal para código, informes, configuraciones y cualquier fichero de texto.

El modo binario (/b) trata el archivo como una secuencia de bytes. No resincroniza tras el primer desajuste y es la forma idónea de verificar que dos ejecutables, librerías u otros binarios son exactamente iguales. Si necesitas validar integridad byte a byte, este es tu modo.

Además de elegir el modo, puedes ajustar la resincronización en comparaciones de texto con /<nnnn> para exigir más (o menos) líneas iguales tras un desajuste antes de volver a alinear. El valor por defecto es 2.

Para comparaciones con mucho ruido de espacios, usa /w y te olvidarás de diferencias por tabs o espacios extra, mientras que /t te ayuda cuando quieres que las tabs cuenten como tabs de verdad. Estas dos opciones marcan la diferencia en archivos tabulados o con sangrías variadas.

Volcado de resultados y ficheros grandes

Cuando el resultado es extenso, leerlo en consola puede ser poco práctico. Redirige la salida a un archivo para analizarla con calma o buscar patrones:

fc archivo1.txt archivo2.txt > diff.txt

Así guardas el informe completo en diff.txt y puedes abrirlo con tu editor favorito, compartirlo o versionarlo. Este truco es especialmente útil con logs o listados muy largos.

Códigos de salida (Exit codes)

Si llamas a fc desde scripts o tareas automatizadas, te interesa su código de salida. En Windows, las señales más habituales son:

Exit code Significado
0 Los archivos son idénticos.
1 Los archivos son diferentes.
2 Se produjo un error en la comparación.

En la variante de FreeDOS se documentan otros ERRORLEVEL adicionales relacionados con parámetros inválidos o fallos al abrir/ubicar archivos. Recuerda que la semántica puede variar entre plataformas.

Alternativas integradas y utilidades relacionadas

Además de fc, en Windows existen utilidades complementarias que te pueden venir de perlas según el escenario. Windiff.exe ofrece una interfaz gráfica para ver diferencias de texto y comparar carpetas de forma visual. En Windows 2000 y posteriores se incluía en Support\Tools del CD original (instalable con Setup.exe), y también dentro de Support.cab de cada Service Pack. En Windows NT 4.0 se distribuía con el Kit de recursos.

  Methods to Take Screenshot on Mac

Con Windiff puedes comparar dos archivos o árboles de directorios completos, alternando entre un modo esquema (resumen de estado) y un modo expandido (diferencias línea a línea). Los resultados vienen codificados por color, y desde el menú puedes enfocar sólo archivo izquierdo, derecho o ambos. También admite el lanzamiento desde línea de comandos y dispone de un archivo de ayuda (Windiff.hlp).

Otra herramienta de consola clásica es Comp.exe, válida para comparar archivos ASCII y binarios, incluso entre equipos. Un ejemplo típico para contrastar DLL entre máquinas sería:

comp C:\Winnt\System32\*.dll \\DifferentComputerName\C$\Winnt\System32\*.dll

Si necesitas verificar que un archivo local y uno remoto son idénticos y no puedes compararlos directamente, un recurso histórico consiste en usar un compresor externo como Pkzip.exe en ambos lados con compresión nula (pkzip -e0) y comprobar el CRC32 con pkzip -v. Si los CRC coinciden, los archivos son iguales. Productos de terceros como éste son responsabilidad de sus fabricantes.

Particularidades de fc en FreeDOS

La versión de fc en FreeDOS amplía el abanico de opciones y presenta varios matices. Además de los conmutadores clásicos (/A, /B, /C, /L, /N, /T, /U, /W), incorpora otros como:

  • /LBn: establece el número máximo de líneas ASCII consecutivas diferentes en n.
  • /Mn: límite de diferencias en binario en n bytes (por defecto 20, con /M0 para ilimitado). Usar /M sin número equivale a /M0.
  • /Q: no muestra la lista detallada de diferencias.
  • /R: muestra un informe final breve (siempre activo con /S).
  • /S: desciende a subdirectorios para ampliar el alcance de la comparación.
  • /X: oculta líneas de contexto en comparación de texto.
  • /nnn: fija el mínimo de líneas coincidentes consecutivas para resincronizar.

En FreeDOS, fc es consciente de nombres largos cuando el sistema los soporta, y en modo binario muestra desplazamientos, valores hex y caracteres ASCII imprimibles cuando aplica. Por defecto detiene la comparación binaria tras 20 diferencias, salvo que uses /M0. Hay una limitación conocida: en modo texto sólo se comparan las primeras 32765 líneas y se ignoran las restantes. Los códigos de salida abarcan coincidencia total, diferencias detectadas, parámetros inválidos, archivo no encontrado o errores al abrir.

comparar dos archivos en Notepad ++
Artículo relacionado:
Cómo Comparar Dos Archivos En Notepad ++

Deja un comentario