¿Cómo eliminar recursivamente el directorio de la línea de comandos en Windows?

Respuestas:

342

deltreesi no recuerdo mi DOS .


Parece que se ha actualizado ... esto es lo que quieres:

RMDIR /S

Esto elimina el directorio C:\test, con indicaciones:

rmdir c:\test /s

Esto hace lo mismo, sin indicaciones:

rmdir c:\test /s /q

Con respecto a la parte sudo de su pregunta, si necesita más privilegios, primero puede abrir un nuevo shell como otra cuenta de usuario utilizando el runascomando, como este:

runas /user:Administrator cmd
rmdir c:\test /s /q
Colin Pickard
fuente
1
@FarmBoy, disculpas, parece que mis recuerdos van demasiado lejos. He actualizado la respuesta para Windows XP y más reciente.
Colin Pickard el
8
deltreees un viejo comando de DOS. Fue eliminado en XP y reemplazado porrmdir /s
heavyd
3
¿Qué significa la bandera / s?
Mike R
Por alguna razón, hay un problema si haces esto en Powershell. Así que solo usa la línea de comandos de Windows.
Devid
3
@MikeR, podría significar "subdirectorios" o algo así. findstrtiene el mismo parámetro, lo que tiene más sentido en su caso, por lo que tal vez sean iguales para la coherencia.
Sam
57

Si desea eliminar una estructura de carpetas larga y complicada del símbolo del sistema que RmDir no tocará y ni siquiera el explorador puede mostrar, he descubierto que la robocopy puede ser muy eficiente para eliminar la estructura. En el ejemplo a continuación tenemos una estructura masiva dentro del administrador de carpetas, la estructura es tan profunda que nada puede eliminarla. Creamos una nueva carpeta vacía llamada (¡curiosamente!) "Nueva carpeta". Luego usamos el comando robocopy, diciéndole que la carpeta de origen es "nueva carpeta" y la carpeta de destino es "D: \ Administrator" con el parámetro / MIR, lo que significa que purgará todo lo que no esté en la carpeta de origen.

robocopy "D:\new folder" D:\Administrator /MIR

En este caso, las rutas de las carpetas eran tan largas que ni siquiera cabían en el buffer de pantalla de la ventana del símbolo del sistema, pero Robocopy atravesará la estructura y eliminará los archivos y carpetas "extra" (es decir, cualquier cosa que no esté en la nueva carpeta vacía, que es todo )

Sean
fuente
11
Esta es la única solución que funcionará cuando su ruta tenga más de 250 caracteres impares
Calm Storm
10

Puede hacer lo siguiente en PowerShell, si está en Windows Vista +:

rm C:\path\to\delete -r -f[orce]
Devesh Khandelwal
fuente
66
Windows 10 dice que -fes ambiguo. Pero puedes correrrm -r -force <path>
BrunoLM
6

Para mí, lo que funciona es

del /s dir

Puede agregar /qpara deshabilitar la confirmación. Nunca he logrado rmdirtrabajar (en XP)

Vincent Fourmond
fuente
66
Probablemente deberías dejar de usar XP, ya no es compatible ...
Eric Wilson
3
Para mí, esto elimina todos los archivos de forma recursiva, pero no elimina los directorios en sí, dirtampoco se elimina.
sergiol
2

Si tiene un camino realmente muy largo (como lo hice debido a un error del programa Java), incluso robocopy no puede hacerlo. Descendió por unos 30 segundos en mi camino y luego colgó.

Mi solución: si puede mover toda la ruta del problema de una carpeta a otra, puede cortar recursivamente y repetidamente algunas escaleras de directorio desde la parte superior.

Este lote juega pingpong entre los dos directorios leer y leer2 y corta 8 'bibliotecas' cada vez. Si su ruta contiene archivos, debe agregar más comandos para borrarlos.

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop
Paulmann
fuente
2

Desde CMD Simplemente ejecute RD / s C: \ ruta \ a \ eliminar Presione Y en el indicador

/ s garantiza que también se eliminen todos los subdirectorios.

Referencia Ejecutar ayuda RD desde la línea de comando

Rachit Ranjan
fuente
2
Gracias por su respuesta, pero esta información ya estaba en la respuesta aceptada. ( rdy rmdirson lo mismo). Tal vez cabría como un comentario allí.
Ben N
0

Esto eliminará "mi carpeta" sin aviso:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
JerryGoyal
fuente