Script .bat Windows que obtiene el listado de todas las subcarpetas (subdirectorios) de una carpeta dada y ejecuta una serie de comandos para cada una de ellas. Utilizaremos un ejemplo que elimina carpetas temporales del usuario, de varios navegadores web (Chrome, Internet Explorer, Edge) y de Escritorio Remoto, para liberar espacio en servidores de Escritorio Remoto con muchos usuarios conectados.

Requisitos para realizar script .bat de proceso por lotes batch que itera (recorre) carpetas

Únicamente necesitaremos un equipo con el sistema operativo Windows (el script sirve para casi todas las versiones desde Windows 98, ME, XP, Vista, 7, 10 y los Server W2003, W2008, W2012, W2016).

El usuario con el que se ejecute el script tendrá que tener acceso a las carpetas que recorrerá. Y si decidimos incluir alguna orden para copiar, mover o eliminar archivos necesitará disponer de estos permisos en las carpetas que se quieran analizar.

Script .bat de proceso por lotes que recorre subcarpetas y ejecuta comandos

A continuación, mostramos un script .bat (proceso por lotes batch) de ejemplo que recorre todas las subcarpetas de la carpeta C:\Users y elimina completamente una serie de carpetas dentro de cada subcarpeta de cada usuario:

Guardaremos el script en un fichero de texto plano (con cualquier editor como Notepad) y le pondremos de extensión .bat, por ejemplo: eliminar_temporales_usuarios.bat.

Una vez guardado podremos ejecutarlo directamente haciendo doble clic. Siempre con la precaución de que el script de ejemplo anterior elimina carpetas completas (incluyendo subcarpetas y archivos) y no solicita confirmación.

Si queremos ejecutarlo con elevación de privilegios (como administradores), pulsaremos sobre el script con el botón derecho del ratón y elegiremos «Ejecutar como administrador»:

También podremos hacerlo desde la línea de comandos, abriendo una ventana de Símbolo de sistema (como administradores). Para ello, pulsando en el botón Inicio, escribiremos directamente «cmd», a la derecha nos mostrará «Símbolo del sistema», pulsaremos en «Ejecutar como administrador»:

Y para ejecutar el script nos posicionaremos en la carpeta donde lo tengamos guardado con cd ruta, por ejemplo:

Una vez en la carpeta solo tendremos que teclear el nombre del fichero .bat (completo, con la extensión) y pulsar INTRO para que se ejecute:

Por supuesto también puede agregarse una tarea programada para que ejecute este script cada cierto tiempo de forma automática. En este caso conviene quitar el último comando del script: pause, para que se cierre el proceso una vez recorridas las subcarpetas y concluida la ejecución de los comandos. En el siguiente artículo explicamos cómo programar una tarea que ejecute un script: