miguelma .5 branch 2

Mundo informático, IT, redes, seguridad y computadoras.

Como borrar carpetas vacias de nuestro disco, sin utilidades o herramientas adicionales que descargar.

Solución 1
En una página de pc magazine en ingles recomiendan usar DIR /AD/B/S | SORT /R > EMPTIES.BAT luego con word hacer unos pasos extra para reemplazar marcas de párrafo ^p por ^pRD con el fin de que cada linea del archivos empties.bat lleve delante RD (que no borra directorios no vacios por defecto, por lo que es seguro) y al fin de ese modo poder ejecutar el bat para borrar los archivos.


Explicacion: Tiene tres partes, 1) Dir que con /ad muestra solo directorios /b formato sin encabezados ni resumenes "pelado" digamos, y /s incluyendo Sub directorios, por lo tanto de esta forma obtenemos el listado de Todos los subdirectorios, vacios o no. Parte 2) Donde canalizamos con Pipe | el comando SORT ordena en modo reverso con /r los resultados anteriores, esto es necesario para poder borrar directorios anidados vacios. Parte 3) todo esto lo enviamos con el direccionador > a un archivo, en este caso empties.bat.

Paso 1) DIR /AD/B/S
NeoRageXP\HISCORES
NeoRageXP\Previews
NeoRageXP\Roms
NeoRageXP\Sound
NeoRageXP\STATES
NeoRageXP\WAVES
NeoRageXP\Sound\clips

Paso 2): DIR /AD/B/S | sort /r
NeoRageXP\WAVES
NeoRageXP\STATES
NeoRageXP\Sound\clips
NeoRageXP\Sound
NeoRageXP\Roms
NeoRageXP\Previews
NeoRageXP\HISCORES

Paso 3: DIR /AD/B/S | sort /r > empties.bat
Esto simplemente nos devuelve el prompt sin ningun mensaje si todo sale bien. En su interior contiene lo que en el paso 2 para que podamos editarlo con Word como lo recomienda Neil J. Rubenking explicado mas arriba en esta pagina.

Resultado: DIR /AD/B/S
NeoRageXP\HISCORES
NeoRageXP\Previews
NeoRageXP\Roms
NeoRageXP\WAVES

Solución 2:
Tengo dos variantes, ninguna involucra word o ningun editor, solo línea de comandos:

Variante 1: Esto hace exactamente el mismo trabajo de manera impecable, lo podemos pegar en un archivo bat o cmd:
DIR /AD/B/S | SORT /R > EMPTIES.txt
FOR /F "usebackq delims==" %i IN (EMPTIES.txt) DO @echo rd "%i" >> del EMPTIES.BAT
call EMPTIES.BAT



Descargar Variante 1 (Recomandada)- Botón derecho Save As...

Variante 2: Sin archivos intermedios, directamente en la linea de comandos
cmd /c FOR /F "usebackq delims==" %i IN (`DIR /AD/B/S`) DO rd "%i"


Descargar Variante 2 - Botón derecho Save As...

Como DESVENTAJAS en la VARIANTE 2 tenemos que FOR no soporta un Pipe anidado que nos permita escribir directamente el comando SORT a continuacion por lo que si hubieran por ejemplo 3 directorios vacios anidados, habria que ejecutarlo ese numero de veces para que los borre a todos, por si se te ocurre probar el orden inverso del comando dir, que es /o-n te cuento que no es efectivo, porque invierte el orden por cada subdirectorio con sus subs en particular, no de todos en general.