Estoy buscando una secuencia de comandos DOS para eliminar todos los archivos y subdirectorios en un directorio raíz a excepción de un conjunto de archivos por lotes (* .bat) que están en el directorio raíz. ¿Hay algún deportista de DOS que conozca una manera fácil de hacer esto?¿Cómo puedo eliminar todos los archivos/subdirectorios excepto algunos archivos en DOS?
actualización
Gracias por su ayuda a todos. Aquí es donde estoy ahora (ver abajo). Estoy usando la sugerencia de Ken para eliminar los archivos. Me gustaría saber cómo puedo detener la ejecución de este script si los comandos del
o RD
fallan debido a un bloqueo en un archivo/directorio. Alguien sabe como? En este momento, este script hará muchas cosas después de las eliminaciones y me gustaría detener el script si cualquiera de las eliminaciones falla.
@echo off
REM *********************************************************************
REM * Delete all files and subdirs except for batch files in the root *
REM *********************************************************************
REM Delete all files in current dir except bat files. Does this by a) setting the attributes of *.bat files to
REM readonly and hidden, b) deleting the rest, c) reseting the attributes
attrib +r +s *.bat
del *.* /S /Q
attrib -r -s *.bat
REM Deletes ALL subdirectories
FOR /D %%G in (*) DO RD /s /q %%G
Esto significa: ¿No elimina CUALQUIER archivo .bat en el directorio raíz? O ¿No elimina ESTOS .bat SI están en el directorio raíz? – colithium
No elimine _any_ .bat archivos en la raíz –