FC - Comparar archivos
Es habitual querer ver qué ha cambiado después de editar un archivo de configuración, o comprobar si una copia de seguridad es idéntica al archivo actual.
El comando FC compara dos archivos y muestra dónde se diferencian. No necesitas instalar una herramienta de diferencias; el Símbolo del sistema basta para una comprobación rápida.
Uso básico
Indica a FC los dos archivos que quieres comparar.
FC [opciones] archivo1 archivo2
Cuando los archivos son idénticos
Si el contenido es el mismo, se muestra lo siguiente.
Cuando los archivos son distintos
Si el contenido difiere, se muestra cada sección distinta de cada archivo, separadas por *****.

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超 入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
En este ejemplo, mode=debug en old.txt ha pasado a ser mode=release en new.txt. También se muestran algunas líneas coincidentes antes y después de la diferencia.
El texto de los mensajes depende del idioma de visualización de Windows. Aquí se usa la salida en español.
En PowerShell, fc es un alias de Format-Custom, por lo que los comandos de este artículo no funcionarán tal cual. Escribe fc.exe al usarlo desde PowerShell.
Opciones de FC
Estas son las opciones más usadas.
| Opción | Descripción |
|---|---|
/B | Compara en binario, byte a byte |
/C | Ignora mayúsculas y minúsculas |
/N | Muestra los números de línea (comparación de texto) |
/W | Trata las secuencias de espacios y tabulaciones como un solo espacio e ignora los espacios iniciales y finales |
/T | No expande las tabulaciones a espacios |
/L | Compara como texto ASCII |
/U | Compara como texto Unicode (UTF-16) |
/A | Muestra solo la primera y la última línea de cada sección distinta |
/LBn | Establece el máximo de líneas consecutivas distintas (por defecto, 100) |
/nnnn | Establece cuántas líneas consecutivas deben coincidir tras una diferencia para resincronizar (por defecto, 2) |
/C - Ignorar mayúsculas y minúsculas
Por defecto se distingue entre mayúsculas y minúsculas. Añade /C para ignorarlas.
/N - Mostrar números de línea
Añade /N para ver qué líneas difieren.
En un archivo largo, los números de línea permiten ir directamente al punto exacto en tu editor. Omítelo si no lo necesitas.
/W - Ignorar diferencias de espacios
Los archivos que solo difieren en la sangría o en el número de espacios dentro de una línea se consideran distintos por defecto. Con /W, las secuencias de espacios y tabulaciones se tratan como un solo espacio y se ignoran los espacios iniciales y finales, de modo que estas diferencias se omiten. Sin embargo, que haya o no espacio sigue contando como diferencia.
/B - Comparar archivos binarios
Para archivos que no son de texto, como imágenes o ejecutables, añade /B para comparar byte a byte.
Cada línea muestra «posición desde el inicio (hexadecimal): byte del archivo 1, byte del archivo 2». En el ejemplo, los bytes en los desplazamientos 0x42 y 0x43 difieren (los desplazamientos empiezan en 0). Si los archivos tienen distinta longitud, se muestra un mensaje que lo indica y el código de salida también señala una diferencia.
Los archivos con extensión .exe, .com, .sys, .obj, .lib y .bin se comparan en binario aunque no uses /B. El resto se compara con /L (comparación de texto ASCII).
/U - Comparar texto Unicode (UTF-16)
En archivos de texto guardados en UTF-16, la comparación ASCII por defecto muestra las diferencias con caracteres ilegibles. En ese caso, añade /U.
Al comparar archivos con codificaciones distintas (por ejemplo UTF-8 y Shift_JIS), se informa de diferencias aunque el texto sea el mismo. Unifica la codificación antes de comparar. Consulta los artículos relacionados para más información sobre codificaciones.
Comparar varios archivos con comodines
Puedes usar comodines como * y ? en los nombres de archivo. Por ejemplo, puedes comparar de una vez los archivos de texto con el mismo nombre de dos carpetas.
FC solo compara los archivos que están directamente en las carpetas indicadas. Para comparar carpetas completas con sus subcarpetas, puedes combinar Compare-Object de PowerShell con Get-ChildItem y Get-FileHash. Ten en cuenta que robocopy /L (solo lista, sin copiar) informa de archivos nuevos, actualizados y ausentes según el tamaño y la fecha de modificación; no compara el contenido.
Comprobar la coincidencia con el código de salida
FC informa del resultado mediante un código de salida (ERRORLEVEL). Puedes usarlo en un archivo por lotes para decidir si dos archivos son idénticos.
| Código de salida | Significado |
|---|---|
0 | Los archivos son idénticos |
1 | Los archivos son distintos |
2 | No se encontró al menos uno de los archivos |
-1 | Sintaxis no válida |
@echo off
fc /B "%~1" "%~2" >nul
if %errorlevel%==0 (
echo Los archivos son identicos.
) else if %errorlevel%==1 (
echo Los archivos son distintos.
) else (
echo No se encontro un archivo o los argumentos no son validos.
)
Como solo importa el veredicto, la salida de la comparación se descarta con >nul.
if errorlevel 1 es verdadero cuando el código de salida es 1 o superior, así que también coincide con 2 (archivo no encontrado), mientras que -1 es falso. En este ejemplo se compara el valor directamente, como en %errorlevel%==0.
Guardar el resultado en un archivo
Para conservar las diferencias como informe, guárdalas con redirección.
Ejemplos prácticos
Ver qué cambiaste en un archivo de configuración
Copia el archivo antes de editarlo y luego compáralo.
Después de editar, comprueba las diferencias.
Verificar una copia
Tras copiar un archivo grande, comprueba que coincide con el original. Puede tardar en archivos grandes.
Resumen
| Objetivo | Comando |
|---|---|
| Comparar dos archivos | fc archivo1 archivo2 |
| Ignorar mayúsculas | fc /C archivo1 archivo2 |
| Mostrar números de línea | fc /N archivo1 archivo2 |
| Ignorar espacios | fc /W archivo1 archivo2 |
| Comparar en binario | fc /B archivo1 archivo2 |
| Comprobar la coincidencia | fc ... >nul y %errorlevel% |