Quiero tener un archivo por lotes que eliminará todas las carpetas y archivos en mi carpeta de caché para mi kit de herramientas inalámbricas.
Actualmente tengo lo siguiente:
cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db
Esto eliminará todos los archivos .db en mi directorio RMS , sin embargo, quiero eliminar cada cosa de este directorio. ¿Cómo puedo hacer esto?
batch-file
batch-processing
usuario69514
fuente
fuente

del /?en el indicador. Le dará información sobre cómo usar la herramienta. ¡Para este caso,del *.* /sfuncionaría pero no lo haga en el directorio incorrecto!rmdir /s /q c:\users\tbrollo\j2mewtk\2.5.2\appdb\RMSRMSdirectorio, que puede no ser lo que se pretendía. (De hecho, a menudo es lo que no quiero, porque luego pierdo la marca de tiempo original del directorio y los permisos que tenía). Vea mi respuesta sobre cómo eliminar todos los contenidos de un directorio pero dejar el directorio en sí mismo. sitio.Respuestas:
del *.*en lugar dedel *.db. Eso eliminará todo.fuente
del . /F /QUtilizar:
Crear un archivo por lotes
Copie el texto a continuación en el archivo por lotes
Eliminará todos los archivos y carpetas.
fuente
chcp 10000cambie la codificación a UTF-16(rmdir "%%i" /s/q 2>NUL || del "%%i" /s/q >NUL )para suprimir los mensajes de error y eliminaciónEsto eliminará todo de la carpeta (y la carpeta misma).
fuente
del *.*solo eliminará archivos, pero no subdirectorios. Para destruir el contenido de un directorio, puede usar este script:Los
pushdcambios en el directorio del que desea eliminar los elementos secundarios. Luego, cuando serdle pide que elimine el directorio actual y todos los subdirectorios, la eliminación de los subdirectorios se realiza correctamente, pero la eliminación del directorio actual falla, porque estamos en él. Esto produce un error que se2> NULtraga. (2 es la secuencia de error).fuente
Acabo de armar esto de lo que morty346 publicó:
Agrega una comprobación rápida de que la carpeta definida en la variable existe primero, cambia el directorio a la carpeta y elimina el contenido.
fuente
Puede hacer esto usando
dely el/Sindicador (para indicarle que repita todos los archivos de todos los subdirectorios):El comando RD también se puede utilizar. Elimine recursivamente en silencio sin un aviso:
Rmdir (rd)
fuente
fuente
Intenta lo siguiente; esto funciona para mi.
Tengo una aplicación que descarga datos en mi carpeta "C: \ tmp", y lo siguiente funciona mejor para mí. Ni siquiera pide Sí o No para eliminar los datos. He hecho un cronograma para que se ejecute cada 5 minutos.
fuente
del /q c:\tmp\*.*, que es aproximadamente un millón de veces más seguro. Sin mencionarcdque solo cambiará la ruta, no la unidad.Mejor aún, digamos que quiero eliminar todo lo que está debajo de la
C:\windows\tempcarpeta.fuente
c:\windows\temp. No creo que esa fuera la pregunta original.Puede usar robocopy para reflejar una carpeta vacía en la carpeta que está borrando.
También funciona si no puede eliminar o volver a crear la carpeta real.
Requiere un directorio vacío existente.
fuente
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).estoy bastante seguro de que/Ees redundante.Utilizar
Esta versión se elimina sin preguntar:
Ejemplo:
Esto se aclarará
C:\foo1\foo\foo\foo3.(Me gustaría mencionar la respuesta de Abdullah Sabouin . Hubo una confusión acerca de que lo copiara . No noté su publicación. ¡Me gustaría agradecerle a Melpomene por señalar errores!)
fuente
rmdir fooerrores sifoono es un directorio vacío.No puede eliminar todo con
rmdirodelsolo:rmdir /s /qno acepta parámetros comodín. Entonces lormdir /s /q *hará el error.del /s /f /qeliminará todos los archivos, pero los subdirectorios vacíos permanecerán.Mi solución preferida (como he usado en muchos otros archivos por lotes) es:
fuente
Solo una versión modificada de la respuesta de GregM :
fuente
Estabas en el camino correcto. Simplemente agregue código para agregar la carpeta que se elimina nuevamente.
fuente
Debe ejecutar este comando para eliminar todos los archivos:
fuente
del *.*(con un espacio)