Supprimer tous les fichiers de type (extension) de manière récursive en bas d'un répertoire à l'aide d'un fichier de commandes
J'ai besoin de supprimer toutes les .jpg et .les fichiers txt (par exemple) dans dir1 et dir2.
Ce que j'ai essayé était:
@echo off
FOR %%p IN (C:\testFolder D:\testFolder) DO FOR %%t IN (*.jpg *.txt) DO del /s %%p\%%t
Dans certains répertoires, il a travaillé; dans d'autres, il n'a pas.
Par exemple, cela n'a rien:
@echo off
FOR %%p IN (C:\Users\vexe\Pictures\sample) DO FOR %%t IN (*.jpg) DO del /s %%p\%%t
Ce que je suis, je disparus dans le deuxième extrait? Pourquoi n'a t il pas de travail?
- Il serait utile si vous donner plus d'informations sur comment exactement il "ne marche pas". Comment les résultats réels diffèrent des résultats attendus? Obtenez-vous un message d'erreur? Qui?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser des caractères génériques avec la
del
de commande, et/S
de le faire de manière récursive.del /S *.jpg
Additif
@BmyGuest demandé pourquoi un downvoted réponse (
del /s c:\*.blaawbg
) a été toute différente de celle que ma réponse.Il y a un énorme différence entre l'exécution de
del /S *.jpg
etdel /S C:\*.jpg
. La première commande est exécutée à partir de l'emplacement actuel, tandis que la deuxième est exécuté sur l'ensemble de la voiture.Dans le cas où vous supprimez
jpg
fichiers à l'aide de la deuxième commande, certaines applications peuvent arrêter de travailler, et vous finirez par perdre toutes vos photos de famille. C'est tout à fait ennuyeux, mais votre ordinateur sera toujours en mesure d'exécuter.Toutefois, si vous travaillez sur un projet, et que vous voulez supprimer tous vos
dll
fichiers dansmyProject\dll
, et exécutez le fichier de commandes suivant:Alors vous finissez par la suppression de tous
dll
fichiers de la forme de votreC:\
lecteur. Toutes vos demandes d'arrêt de travail, votre ordinateur devient inutile, et au prochain redémarrage, vous êtes téléporté dans la quatrième dimension, où vous serez coincé pour l'éternité.La leçon ici est de ne pas exécuter cette commande directement à la racine d'un disque (ou dans tout autre endroit qui pourrait être dangereux, comme les
%windir%
) si vous pouvez l'éviter. Toujours exécuter en tant localement que possible.pause
en fin de compte permet à l'utilisateur de voir l'historique complet de l'information.cd
etdel
commandes avec "& " voir stackoverflow.com/q/8055371/7429464del
de commande, sans avoir à changer le répertoire courant.J'ai écrit un script batch il y a un moment qui vous permet de choisir une extension de fichier à supprimer. Le script va chercher dans le dossier et tous les sous-dossiers de n'importe quel fichier avec l'extension et le supprimer.
Espère que cela est utile à toute personne qui le veut 🙂
find . -name "*.ext" -type f -delete
(où ext est l'extension de votre choix) de le faire.Vous pouvez l'utiliser pour supprimer TOUS les Fichiers dans un Dossier et sous-dossiers:
Ou de l'utiliser pour Supprimer Certains Types de Fichiers Uniquement:
Je n'ai pas assez de réputation pour ajouter un commentaire, alors je l'ai posté cela comme une réponse.
Mais pour le problème d'origine avec cette commande:
La première Pour manque récursive de la syntaxe, il convient de:
Il vous suffit de faire:
pour montrer la sortie réelle.
Si vous essayez de supprimer certains .extensions dans le lecteur C: utiliser cette cmd:
J'ai eu un client qui a un cryptage de virus et j'ai besoin de trouver tous les fichiers inutiles et de les supprimer.
del /s c:\*.dll
, alors vous êtes pour une très mauvaise surprise. Jamais exécuter ces commandes sur l'ensemble du disque, à moins que absolument nécessaire.c:
devrait être remplacé par le dossier de votre choix si la personne ne veut pas le disque entier.