Comandos para gestionar atributos de archivos en Windows

Última actualización: 18/02/2026
Autor: Isaac
  • El comando attrib permite ver y modificar de forma masiva los atributos R, A, S, H y otros valores avanzados de archivos y carpetas.
  • Windows gestiona muchos más atributos internos (comprimido, cifrado, indexado, temporal, offline) que pueden afectar a copias de seguridad, visibilidad y rendimiento.
  • Combinando attrib con dir, tree, for, xcopy, copy, move y ren es posible automatizar listados, creación, organización y renombrado de grandes volúmenes de ficheros.
  • La consola resulta clave para recuperar archivos ocultos por malware y para clonar o limpiar estructuras de carpetas sin necesidad de herramientas externas.

Comandos para gestionar atributos de archivos en Windows

Si trabajas con muchos ficheros en Windows, tarde o temprano necesitarás tocar los atributos de archivos y carpetas: hacerlos de solo lectura, ocultarlos, marcarlos para copia de seguridad o incluso recuperarlos tras un malware que los ha dejado invisibles. Todo eso se hace, sobre todo, desde la línea de comandos.

En esta guía vas a ver, de forma ordenada y detallada, cómo usar el comando attrib y otros comandos de terminal para listar, cambiar y automatizar el manejo de atributos y de grandes volúmenes de archivos y directorios en Windows. Verás sintaxis completa, ejemplos prácticos, trucos para casos reales (como limpiar un USB infectado) y una explicación clara de qué significa cada atributo interno de Windows.

Qué son los atributos de archivos en Windows

En Windows, cada fichero y cada carpeta tiene una serie de atributos binarios que activan o desactivan comportamientos: si se puede modificar, si se ve en el Explorador, si el sistema lo trata como archivo de sistema, si está comprimido, cifrado, preparado para copia de seguridad, etc. Estos atributos no dependen del usuario ni de los permisos NTFS.

Es decir, cuando pones un archivo como solo lectura mediante atributos, esa marca se aplica a todos los usuarios del sistema, incluidos administradores. Los permisos y ACL de NTFS son otra capa aparte; los atributos son propiedades globales del fichero.

Podemos cambiar esos atributos de dos formas: de manera gráfica desde el Explorador de archivos o mediante la consola con el comando attrib. Además, existen utilidades de terceros para ver y modificar atributos y metadatos avanzados de forma más cómoda.

Atributos de archivos en Windows

Comando attrib: sintaxis y parámetros

El comando attrib sirve para mostrar, asignar o quitar atributos a uno o varios archivos y directorios. Si lo ejecutas sin parámetros, te listará los atributos de todos los ficheros del directorio actual.

La sintaxis general del comando en versiones modernas de Windows es:

attrib ]

Cada bloque de la sintaxis permite activar (+) o desactivar (-) un atributo concreto, y al final se indica a qué archivos o carpetas se aplica, así como si debe hacerlo de forma recursiva.

El patrón especifica el archivo, carpeta o conjunto de archivos. Puedes usar comodines * y ? en el nombre para afectar a grupos de ficheros (por ejemplo, *.txt o file?.bak).

Uso del comando attrib en consola

Significado de cada parámetro de attrib

Los principales modificadores de attrib son letras que representan atributos. Siempre se usan con + para añadir el atributo o – para quitarlo. Vamos uno por uno:

  • {+|-}r: establece (+) o borra (-) el atributo de solo lectura (R).
  • {+|-}a: activa o desactiva el atributo de archivo listo para archivar (A), usado por programas de copia de seguridad.
  • {+|-}s: marca o desmarca el atributo de archivo de sistema (S).
  • {+|-}h: asigna o quita el atributo de archivo oculto (H).
  • {+|-}o: agrega o elimina el atributo de archivo sin conexión (Offline).
  • {+|-}i: gestiona el atributo de Not Content Indexed, que indica si el contenido debe excluirse del índice de búsqueda.
  • {+|-}x: pone o quita el atributo de archivo de limpieza (usado por ciertas funciones de mantenimiento).
  • {+|-}p: controla el atributo de archivo anclado (pinned).
  • {+|-}u: controla el atributo de archivo desanclado (unpinned).
  • {+|-}b: gestiona el atributo de blob SMR (usado en determinados discos y tecnologías de almacenamiento).

Además, existen modificadores que controlan cómo se aplica el comando en el árbol de directorios:

  • /s: procesa todos los archivos en el directorio actual y en todos sus subdirectorios.
  • /d: aplica los cambios también a las carpetas (por defecto solo afecta a archivos).
  • /l: actúa sobre el propio enlace simbólico y no sobre el destino al que apunta.

Si en algún momento tienes dudas sobre la versión de attrib instalada en tu Windows, puedes ver la ayuda integrada con attrib /?, que mostrará la sintaxis completa y las opciones disponibles según tu sistema.

Ejemplos de comandos attrib en Windows

Atributos clásicos: R, A, S, H y otros internos de Windows

Aparte de los parámetros del comando, es importante entender qué significan los atributos internos que usa Windows, muchos de ellos visibles en la consola y en la pestaña de propiedades del archivo.

  ARREGLADO: La Microsoft Store no funciona en la compilación de Windows 10 Insider

Los más habituales que verás en la salida de attrib son:

  • R (FILE_ATTRIBUTE_READONLY – 0x00000001): solo lectura. Impide modificar o borrar el archivo de manera normal.
  • H (FILE_ATTRIBUTE_HIDDEN – 0x00000002): oculto. El archivo no se muestra en listados estándar salvo que tengas activa la opción de ver archivos ocultos.
  • S (FILE_ATTRIBUTE_SYSTEM – 0x00000004): sistema. Indica que es un archivo interno del sistema operativo.
  • A (FILE_ATTRIBUTE_ARCHIVE – 0x00000020): listo para archivar. Marca los ficheros que han cambiado y deben incluirse en la próxima copia de seguridad.
  • D (FILE_ATTRIBUTE_DIRECTORY – 0x00000010): indica que la entrada es un directorio.
  • Normal (FILE_ATTRIBUTE_NORMAL – 0x00000080): archivo sin ningún otro atributo activo. Se usa como estado “limpio”.
  • C (FILE_ATTRIBUTE_COMPRESSED – 0x00000800): contenido comprimido en NTFS para ahorrar espacio. Se suele mostrar con el nombre en color azul en el Explorador.
  • E (FILE_ATTRIBUTE_ENCRYPTED – 0x00004000): archivo cifrado con EFS. Solo lo puede leer el usuario que lo cifró; en el Explorador suele aparecer en color verde.
  • N (FILE_ATTRIBUTE_NOT_CONTENT_INDEXED – 0x00002000): excluye el contenido de ese archivo o carpeta del índice de búsqueda.
  • Offline (FILE_ATTRIBUTE_OFFLINE – 0x00001000): indica que los datos no están disponibles de inmediato (por ejemplo, archivados en almacenamiento remoto).
  • Temporary (FILE_ATTRIBUTE_TEMPORARY – 0x00000100): el sistema puede gestionar el archivo como almacenamiento temporal, priorizando mantenerlo en memoria.

Ten en cuenta que algunos atributos no son compatibles entre sí. Por ejemplo, un archivo comprimido en NTFS no puede estar a la vez cifrado, y viceversa.

Ver y cambiar atributos desde la consola

La forma más directa de consultar qué atributos tiene un archivo es usar attrib con la ruta o comodines adecuados. Por ejemplo, para listar los atributos de todos los ficheros de una carpeta:

attrib "c:\attrib\*.*"

La salida mostrará una letra por cada atributo activo seguida de la ruta completa, algo así como: A R o H R delante del nombre del archivo. Si ejecutas simplemente attrib estando dentro de la carpeta, verás la misma información sin indicar la ruta explícitamente.

Para ver los atributos de un archivo concreto en el directorio actual, podría ser tan simple como:

attrib news86

Si lo que quieres es poner un archivo como solo lectura, por ejemplo report.txt, usarías:

attrib +r report.txt

Y si necesitas quitar ese mismo atributo de solo lectura al conjunto de archivos de una unidad o carpeta, podrías hacer algo como:

attrib -r b:\public\*.* /s

En este último caso estarías desbloqueando el atributo R de todos los archivos de la carpeta public de la unidad B: y de todos sus subdirectorios, gracias al modificador /s.

Uso típico del atributo Archive con copias de seguridad

El atributo A (Archive) se emplea mucho en estrategias de backup. Cuando se crea o modifica un archivo, Windows suele activar automáticamente el atributo Archive para indicar que ese fichero ha cambiado desde la última copia.

Se puede forzar este comportamiento de forma masiva. Por ejemplo, para marcar todos los archivos de la unidad A: como listos para archivar:

attrib +a a:*.*

Y, a continuación, podrías limpiar ese atributo solo en los archivos de copia o temporales, por ejemplo con extensión .bak:

attrib -a a:*.bak

Así consigues que las herramientas de copia de seguridad (como xcopy u otras) ignoren determinados ficheros en sus ejecuciones incrementales.

Recuperar archivos ocultos tras un malware con attrib

Un caso muy real y bastante común es encontrarte con un USB o disco externo donde un malware ha cambiado los atributos de todos tus archivos a ocultos, de solo lectura y de sistema. En el Explorador parece que “no hay nada”, pero en realidad el contenido sigue ahí.

En ese escenario, puedes usar el comando:

attrib -s -r -h F: /s /d

Aquí le estás diciendo a Windows que, en la unidad F:, quite los atributos de sistema (-s), solo lectura (-r) y oculto (-h) de todos los archivos (/s) y también de las carpetas (/d). Tras unos segundos, los ficheros volverán a ser visibles.

Este tipo de uso de attrib es especialmente útil cuando el malware simplemente “esconde” tus archivos cambiando atributos, en lugar de cifrarlos o borrarlos.

Gestión gráfica de atributos y herramientas de terceros

Si prefieres no tirar de consola, puedes ver y cambiar muchos de estos atributos desde el Explorador de Windows. Basta con hacer clic derecho sobre el archivo, ir a Propiedades y revisar las pestañas:

  • Pestaña General: casillas de Solo lectura y Oculto; botón Avanzados para opciones como compresión, cifrado, indexación, etc.
  • Pestaña Detalles: muestra un listado más amplio de propiedades y atributos.
  Cómo abrir y configurar el panel de control de sonido en Windows 11

En archivos comprimidos NTFS, el nombre suele aparecer en color azul; en archivos cifrados con EFS, en color verde. Esto ayuda a identificar de un vistazo qué atributos avanzados están activos.

También existen utilidades externas como ciertas herramientas de AjpdSoft u otras centradas en metadatos y atributos extendidos, que permiten ver y modificar con más granularidad todos estos valores, más allá de lo que se expone en la interfaz estándar de Windows.

Listar archivos y carpetas en masa con dir y tree

Cuando estás ajustando atributos a gran escala, es casi obligado apoyarte en comandos de listado como dir y tree para ver qué tienes entre manos y generar listados útiles.

El comando dir permite listar el contenido de una carpeta con multitud de filtros. Algunos ejemplos básicos:

  • dir → lista estándar de archivos y carpetas.
  • dir *.ext → muestra solo los ficheros con una extensión concreta.
  • dir /a → incluye archivos ocultos y de sistema.
  • dir /b → modo “básico”, solo nombres de archivo, sin encabezados ni totales.
  • dir /o:s → ordena por tamaño; hay otras muchas opciones de ordenación.

Si necesitas guardar ese listado en un archivo de texto para documentar o revisar después, puedes redirigir la salida con >:

dir /a /b > listado.txt

Y si quieres una visión más “visual” de la estructura, el comando tree te genera un árbol ASCII con carpetas (y opcionalmente archivos):

  • tree carpeta → muestra solo la estructura de directorios.
  • tree mi_carpeta /f → incluye también ficheros en el árbol.

Crear archivos y carpetas de forma masiva

Además de jugar con atributos, muchas veces interesa generar en bloque montones de archivos o carpetas. La consola de Windows permite hacerlo sin necesidad de programar nada complejo.

Para crear rápidamente un archivo de texto vacío, un truco clásico es:

echo. > nombre_archivo.txt

Y para crear una carpeta nueva, lo habitual es:

mkdir nombre_carpeta

La magia llega cuando combinas estos comandos con bucles for. Por ejemplo, para crear una secuencia numerada de archivos o carpetas, puedes usar:

for /L %i in (0, 1, 10) do echo. > "%i hola.md"

Este comando crea ficheros desde “0 hola.md” hasta “10 hola.md”. Si en vez de archivos quieres directorios:

for /L %i in (0, 1, 10) do mkdir "%i hola"

El modificador /L indica a for que recorra una serie numérica (inicio, incremento, final), lo cual es perfecto para plantillas, proyectos, capítulos, etc.

Crear ficheros o carpetas a partir de una lista

Otro truco muy potente es usar un archivo de texto como “fuente de nombres”. Imagina que tienes un fichero.txt con una lista de títulos o identificadores, y quieres convertir cada línea en un archivo o carpeta.

Para generar un archivo .md por cada línea de ese fichero, podrías ejecutar:

for /f "tokens=*" %i in (fichero.txt) do echo. > "%i.md"

Si prefieres crear carpetas con esos nombres, basta con cambiar el comando interior:

for /f "tokens=*" %i in (fichero.txt) do mkdir "%i"

La opción "tokens=*" hace que se recoja toda la línea completa, incluidos espacios, lo cual es ideal cuando los nombres contienen más de una palabra.

Organizar archivos: una carpeta por archivo

Un caso curioso pero bastante común, sobre todo al manejar contenidos para blogs o proyectos grandes, es querer meter cada archivo en una carpeta que se llame igual. Por ejemplo, tienes muchos .txt sueltos y quieres que cada uno vaya a su propia carpeta con su mismo nombre (sin la extensión).

Esto se consigue con un bucle como este:

for %i in (*) do mkdir "%~ni" && move "%i" "%~ni"

Aquí %~ni es el nombre del archivo sin extensión. Se crea la carpeta con ese nombre y luego se mueve el fichero dentro. Muy útil para estructurar rápidamente contenidos que antes estaban todos juntos.

Concatenar varios ficheros de texto en uno solo

Si manejas documentación dividida en múltiples archivos, te puede interesar juntarlo todo en un único fichero. Con un bucle for y el comando type lo tienes hecho:

  Qué es Stealth VM de Robolinux y cómo permite ejecutar Windows en Linux

for %i in (*.txt) do type "%i" >> archivo_salida.txt && echo. >> archivo_salida.txt && echo. >> archivo_salida.txt

Este comando recorre todos los .txt del directorio, los va añadiendo al final de archivo_salida.txt y, después de cada uno, introduce un par de líneas en blanco para separar mejor el contenido.

Si además quieres que antes de cada bloque se escriba el nombre del archivo de origen, puedes usar una variante:

for %i in (*.txt) do echo %i% >> archivo_salida.txt && type "%i" >> archivo_salida.txt && echo. >> archivo_salida.txt && echo. >> archivo_salida.txt

Esto genera un documento final donde cada sección empieza con el nombre del fichero original, seguido de su contenido.

Copiar y mover archivos de forma avanzada

Los comandos básicos para copiar y mover son muy sencillos pero, combinados con bucles, permiten operaciones masivas muy potentes. A nivel simple, tienes:

  • copy archivo_origen directorio_destino
  • move archivo_origen archivo_destino

Si quieres, por ejemplo, copiar el mismo archivo a todas las carpetas de un directorio, imagina un readme.txt que debe ir en cada subcarpeta. Puedes hacer:

for /D %a in (*) do (xcopy /Y readme.txt "%a")

El modificador /D hace que el bucle solo recorra directorios, y xcopy /Y copia el archivo sobrescribiendo sin preguntar. Ideal para plantillas, archivos de licencia, instrucciones, etc.

Clonar estructura de carpetas sin archivos

A veces necesitas duplicar una estructura completa de directorios, pero vacía, sin ficheros dentro. Esto se logra fácilmente con xcopy y los modificadores adecuados.

Para copiar solo las carpetas (sin subcarpetas), basta con:

xcopy ruta_origen ruta_destino /t

Si quieres incluir también todas las subcarpetas, añade /e:

xcopy ruta_origen ruta_destino /t /e

La combinación /t /e dice a xcopy que cree el árbol de directorios completo, pero sin copiar los archivos, algo muy cómodo para clonar plantillas de proyectos o entornos.

Renombrar archivos en masa

Otra tarea muy repetida cuando gestionas ficheros es el renombrado masivo. El comando base es sencillo:

ren ruta_archivo nuevo_nombre

Pero lo interesante llega cuando quieres añadir prefijos, sufijos o renombrar en múltiples carpetas a la vez. Para añadir, por ejemplo, un prefijo a todos los archivos del directorio actual:

for %a in (*.*) do ren "%a" "prefijo - %a"

Y para añadir un sufijo al final del nombre (antes de la extensión) podrías usar variantes más avanzadas con expansión de variables, pero como ejemplo básico:

for %a in (*.*) do ren "%a" "%a - sufijo"

Si lo que necesitas es cambiar el nombre de un archivo concreto en muchas carpetas y subcarpetas, por ejemplo renombrar todos los readme.txt a readme.md, puedes hacer:

for /R %G in (readme.txt) do ren "%G" "readme.md"

Aquí /R indica que el recorrido es recursivo. Se localizará cada archivo readme.txt en el árbol y se renombrará a la nueva extensión.

Eliminar archivos y carpetas con cuidado

Los comandos de borrado en consola son muy potentes, así que conviene usarlos con extremo cuidado. Los básicos son:

  • del nombre_fichero → elimina archivos.
  • del /Q /F *.* → borra todos los archivos del directorio actual, sin preguntar (/Q) y forzando la eliminación de archivos de solo lectura (/F).
  • rmdir nombre_directorio → elimina una carpeta vacía.
  • rmdir /S /Q nombre_directorio → elimina la carpeta y todo su contenido, subdirectorios incluidos, sin pedir confirmación.

Antes de lanzar un borrado masivo, suele ser buena idea hacer un listado previo con dir para asegurarte de que estás en la ruta correcta y de que no te vas a cargar nada importante por error.

Con todo lo anterior, la consola de Windows se convierte en una navaja suiza para quien tiene que gestionar atributos y grandes volúmenes de archivos: puedes corregir estragos de malware, preparar copias de seguridad, automatizar estructuras de proyectos, renombrar y clasificar en masa o afinar el rendimiento marcando qué se indexa, qué se comprime o qué se archiva, todo ello con unos cuantos comandos bien pensados.

cambiar atributos de un archivo en windows-6
Artículo relacionado:
Cómo cambiar los atributos de archivos en Windows