Necesito eliminar una carpeta que contiene otras carpetas y archivos dentro. Intenté del
y los rmdir
comandos 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
rmdir
comando 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é archivormdir
estaba 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
rmdir
comandos. 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 usarping
para crear una pausa:Entonces en total:
fuente
rm -rf /directory/
debe ser global en todos los sistemas operativos.timeout /t 3
pause
comando).Tratar:
o:
para saltear los mensajes de confirmación.
fuente
del
yrmdir
no preguntaba nada, solo enviaban algunas líneas como la de la descripción.rmdir /s
eliminará 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 /q
dos o tres veces seguidas.Si está en un archivo por lotes, puede hacer algo como esto:
fuente
Úselo
del
en los archivos internos, luegormdir
elimine la carpeta.Para usar el
rmdir
método para eliminar también todos los archivos, use el/S
interruptor antes del nombre del directorio y/Q
suprima 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 -g
eliminar carpeta:
rimraf SourceFolder
Esto me ayudó cuando recibí el error:
fuente
Carpeta versiones anteriores de Windows (DOS, Windows 95/98 / ME),
DELTREE
es el equivalente deRM
oRMDIR
. SinDELTREE
embargo, utilizo en mi estación de trabajo Windows 7 en archivos por lotes.fuente
Creo que puedes usarlo así:
fuente