2008-12-03 21 views
17

Estoy tratando de escribir un archivo de lote de Windows que puede eliminar archivos de subdirectorios. Prefiero no codificar la estructura del directorio, así que puedo usar este proceso con otros proyectos.¿Cómo eliminar los archivos N de tipo X de las subcarpetas Y de un archivo por lotes de Windows?

  • necesito para eliminar los archivos de tipo X,
  • tengo la carpeta principal C:\MyProject,
  • Hay Y subcarpetas C:\MyProject\?,
  • Hay N archivos que desea eliminar.

¿Existe una función del (de tipo) rápida que simplemente me falta?

Respuesta

33

En realidad se puede utilizar el estándar del comando:

c: 
cd MyProject 
del /S *.type 

donde tipo es la extensión que desea eliminar y el parámetro/S comprobará en todas las subcarpetas de MiProyecto.

+0

eres increíble. – Jeremiah

+0

Lo curioso, después de años de programación, pensé que esto sería una especie de ciclo con "si" y cosas ... –

+1

tenga en cuenta que esto también eliminará cualquier archivo con una subcadena coincidente al comienzo de su extensión. Por ejemplo 'del/S * .doc' borra los tipos de archivos' .doc' y '.docx'. –

1

Si el comando del no tenía la/S Bandera de eliminar de forma recursiva, que haría uso de AWK a hacer algo como esto (que había necesidad de las herramientas de UNIX para Windows):

dir MyProject\*.* /ad /s /b | gawk "{print \"del \\\"\" $0 \"\\*.type\\\"\";}" | cmd 

Mi 2 centavos, en caso de que necesite hacer algo similar (aplicando un programa a todos los archivos del tipo X en todas las subcarpetas) con un comando que carece de un indicador recursivo.

Cuestiones relacionadas