Necesito eliminar una carpeta que contiene otras carpetas y archivos dentro. Intenté dely los rmdircomandos pero a veces fallan con algunas líneas de error:[PATH]: The directory isn't empty.
¿Hay alguna buena alternativa?
windows
command-line
Francesco Zanini
fuente
fuente

Respuestas:
Esto me sucede mucho con mis scripts de compilación automatizados.
Supongo que la razón podría ser alguna aplicación que tiene un archivo abierto en ese directorio con "share delete". Es decir, la aplicación permite la eliminación del archivo (por lo que creo que la llamada DeleteFile no falla), pero el archivo solo desaparecerá después de que dicha aplicación haya cerrado su identificador.
Eso significa que el archivo aún puede estar allí cuando el
rmdircomando intenta eliminar la carpeta, de ahí el mensaje de error. Poco después, dicha aplicación cerrará su identificador, el archivo desaparecerá y, cuando inspeccione la carpeta para ver qué archivormdirestaba hablando, estará vacío.Al menos esa es mi teoría.
La solución propuesta por Harry Johnston se ve bien. Solo insertaría una pausa entre los
rmdircomandos. Por supuesto, Windows no tiene un comando de "pausa" fácilmente programable (corrección: las versiones antiguas de Windows no lo tienen, las más nuevas tienen - vea los comentarios). Pero si la granularidad de segundos es suficiente, se puede usarpingpara crear una pausa:Entonces en total:
fuente
rm -rf /directory/debe ser global en todos los sistemas operativos.timeout /t 3pausecomando).Tratar:
o:
para saltear los mensajes de confirmación.
fuente
delyrmdirno preguntaba nada, solo enviaban algunas líneas como la de la descripción.rmdir /seliminará todo lo que sea posible eliminar. Es posible que tenga archivos bloqueados por un programa, archivos de solo lectura o archivos que necesita acceso administrativo para eliminar. No hay un solo comando que se encargue de todas esas situaciones por ustedEs posible que tenga algunos archivos de solo lectura, puede usar la opción del / F para deshacerse de ellos usando
También podría tener algunos archivos ocultos y, si está realmente seguro de que desea eliminarlos, puede hacerlo utilizando
Si esto todavía falla, entonces no tiene permiso para eliminar algunos archivos o algunos de los archivos todavía están en uso.
fuente
Creo que hay un error en Windows 7 (y quizás en otras versiones) que a veces causa este síntoma; o podría ser un error en el software de terceros. (¿Tiene Symantec Endpoint Protection instalado por casualidad?)
De todos modos, me he encontrado con bastante frecuencia. En la mayoría de los casos, el problema se puede solucionar ejecutando
rd /s /qdos o tres veces seguidas.Si está en un archivo por lotes, puede hacer algo como esto:
fuente
Úselo
delen los archivos internos, luegormdirelimine la carpeta.Para usar el
rmdirmétodo para eliminar también todos los archivos, use el/Sinterruptor antes del nombre del directorio y/Qsuprima la solicitud de eliminación. Esta es la mejor manera de hacerlo, ya que no se pierde ningún archivo. Sin embargo, tenga cuidado al usar el modificador / Q, ya que no le advertirá sobre los atributos del sistema o de los archivos ocultos.fuente
Si usa el nodo , puede usar la dependencia de rimraf de esta manera:
ejecutar instalar:
npm install rimraf -geliminar carpeta:
rimraf SourceFolderEsto me ayudó cuando recibí el error:
fuente
Carpeta versiones anteriores de Windows (DOS, Windows 95/98 / ME),
DELTREEes el equivalente deRMoRMDIR. SinDELTREEembargo, utilizo en mi estación de trabajo Windows 7 en archivos por lotes.fuente
Creo que puedes usarlo así:
fuente