2008-12-03 17 views
17

J'essaie d'écrire un fichier de commandes Windows qui peut supprimer des fichiers de sous-répertoires. Je préfèrerais ne pas coder en dur la structure du répertoire, donc je peux utiliser ce processus avec d'autres projets.Comment supprimer N fichiers de type X à partir de sous-dossiers Y à partir d'un fichier de commandes Windows?

  • Je dois supprimer les fichiers de type X,
  • J'ai le dossier parent C:\MyProject,
  • Il y a des sous-dossiers Y C:\MyProject\?,
  • Il y a des fichiers N à supprimer.

Existe-t-il une fonction rapide del (de type)?

Répondre

33

En fait, vous pouvez utiliser la norme del commande:

c: 
cd MyProject 
del /S *.type 

Où type est l'extension que vous souhaitez supprimer et le paramètre/S vérifie dans tous les sous-dossiers de MyProject.

+0

vous êtes génial. – Jeremiah

+0

Chose drôle, après des années de programmation, je pensais que ce serait un peu de boucle avec "si" s et d'autres choses ... –

+1

s'il vous plaît noter que cela supprimera également tous les fichiers avec une sous-chaîne correspondante au début de son extension. Par exemple 'del/S * .doc' supprime les types de fichiers' .doc' et '.docx'. –

1

Si la commande del n'a pas le/S drapeau supprimer récursive, j'utiliser AWK faire quelque chose comme ça (vous aurez besoin des outils UNIX pour Windows):

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

Mon 2 cents, au cas où vous deviez faire quelque chose de similaire (en appliquant un programme à tous les fichiers de type X dans tous les sous-dossiers) avec une commande qui n'a pas de drapeau récursif.