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 *.* /s
funcionaría pero no lo haga en el directorio incorrecto!rmdir /s /q c:\users\tbrollo\j2mewtk\2.5.2\appdb\RMS
RMS
directorio, 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 /Q
Utilizar:
Crear un archivo por lotes
Copie el texto a continuación en el archivo por lotes
Eliminará todos los archivos y carpetas.
fuente
chcp 10000
cambie 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
pushd
cambios en el directorio del que desea eliminar los elementos secundarios. Luego, cuando serd
le 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> NUL
traga. (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
del
y el/S
indicador (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 mencionarcd
que solo cambiará la ruta, no la unidad.Mejor aún, digamos que quiero eliminar todo lo que está debajo de la
C:\windows\temp
carpeta.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/E
es 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 foo
errores sifoo
no es un directorio vacío.No puede eliminar todo con
rmdir
odel
solo:rmdir /s /q
no acepta parámetros comodín. Entonces lormdir /s /q *
hará el error.del /s /f /q
eliminará 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)