La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Ms-Dos/1024745-Eliminar-carpetas-vacias.html

Eliminar carpetas vacias

Eliminar carpetas vacias

Publicado por Patricia (2 intervenciones) el 23/09/2008 16:10:42
Buen dia, espero que alguien me pueda ayudar, necesito borrar unas carpetas vacias desde un directorio especifico.

Es decir todos los dias respaldamos informacion en carpeta c: emp de los cuales todos los dias se toma la informacion de las subcarpetas que se encuentran dentro de ella los cuales quedan vacias, debido a la cantidad de carpeta que existen en temp es muy complicado estar revisando carpeta por carpeta para eliminar las vacias

quisiera hacer un bat para que haga esa tarea gracias

RE:Eliminar carpetas vacias

Publicado por Antoni Masana (295 intervenciones) el 24/09/2008 08:07:36
Esto borra los directorios vacios pero solo los de primer nivel, si dentro de un directorio hay otro directorio vacio no borra ni el primero ni el segundo.

for /d %%a in (*.*) do rd %%a 2>nul

En este caso tambien se puede hacer, es decir si en lugar de directorios tienes ramas vacias y quieres borrar toda la rama pero es un poco más complejo y si no es tu caso lo dejo para otro día.

Saludos

RE:Eliminar carpetas vacias

Publicado por A.H.H (43 intervenciones) el 24/09/2008 19:11:49
Hola Antoni

Encontre por ahi que con el modificador /R junto con el /D si entra dentro de los subdirectorios.

for /r /d %%a in (*.*) do rd %%a 2>nul

salu2

RE:Eliminar carpetas vacias

Publicado por mike  (1 intervención) el 07/04/2009 02:21:18
no sirve

RE:Eliminar carpetas vacias

Publicado por patricia (2 intervenciones) el 24/09/2008 21:05:40
muchas gracias por su ayuda.
como comentario el de antoni funciono perfectamente, el otro no me funciono

saludos

RE:Eliminar carpetas vacias

Publicado por A.H.H (2 intervenciones) el 24/09/2008 21:45:01
Hola como con echo si funciona mostrandote todos los directorios y subdirectorios pense que con rd funcionaria ejemplo con echo-->

@echo off
for /r /d %%a in (*.*) do echo %%a
pause

esto muestra los directorios y subdirectorios de donde ejecutes el .bat

RE:Eliminar carpetas vacias

Publicado por Antoni Masana (295 intervenciones) el 25/09/2008 16:16:12
Gracias A.H.H. siempre se aprende algo nuevo, pero como dice Patricia no funciona o mejor dicho no hace lo que necesita porque primero muestra los directorios de primer nivel y despues lo de segundo y tercero y cuarto y etc... Pero debe borrar primero los directorios etc, despues los directorios de cuartos nivel, los de tercero, los de segundo y por ultimo los de primer nivel.

Pero ¿Como hacerlo?

Pues bien algo asi puede funcionar:

@echo off
FOR /R /D %%a IN (*.*) DO ECHO DEL "%%a" >>Lista_1.bat
SORT /R <Lista_1.bat >Lista_2.bat
CALL Lista_2.bat
DEL Lista_1.bat
DEL Lista_2.bat

El %%a entre comillas es por si el nombre de directorio tiene espacios.

Saludos

RE:Eliminar carpetas vacias

Publicado por jucal (1 intervención) el 23/11/2011 17:08:44
Antoni,

La ultima versión funciono de maravilla. Le hice una pequeña modificación para que eliminara los directorios: sustituí DEL por RD.
Excelente aporte, gracias por compartir.

Slds

RE:Eliminar carpetas vacias

Publicado por Rbn (1 intervención) el 17/04/2015 01:28:07
Hola, gracias a la aportación de los compañeros anteriores, logre lo que buscaba, pero adicionalmente, hice unos ajustes.

De hecho, la forma de borrar en la misma instrucción las carpetas obtenidas y las sub-carpetas así como su contenido se puede hacer usando el RD con los modificadores /s /q


@echo off
c:
cd C:\Users\Rubens\AppData\Local\Tempcopia
for /r /d %%a in (*.tmp_dir*) do RD /s /q %%a
pause

Si observan tambien, dentro del parentesis, en expresión regular pudo definir que solo busque ciertas carpetas y no necesariamente todas, es decir, me va a buscar solo carpetas que contengan en su nombre ".tmp_dir"

Espero les ayude en algo, saludos