Fichier de commandes. Supprimez tous les fichiers et dossiers dans un répertoire
Je veux avoir un fichier batch qui va supprimer tous les dossiers et fichiers dans le cache de mon dossier pour mon wireless toolkit.
Actuellement j'ai le texte suivant:
cd "C:\Users\tbrollo\j2mewtk.5.2\appdb\RMS"
del *.db
Cela va supprimer tous .db fichiers dans mon RMS répertoire, mais je tiens à le supprimer chaque chose à partir de ce répertoire. Comment puis-je faire cela?
- Type
del /?
à l'invite de commandes. Il va vous donner des informations sur la façon d'utiliser l'outil. Pour ce cas,del *.* /s
fonctionnerait mais ne le faites pas dans le répertoire incorrect! rmdir /s /q c:\users\tbrollo\j2mewtk\2.5.2\appdb\RMS
- grâce forsvarir.
- Je dirais par la voix de modifier la réponse correcte
- forsvarir réponse supprime la
RMS
annuaire, ce qui peut ne pas être ce qui était prévu. (En fait, c'est souvent ce que je ne veux pas, parce que je perds la estampille temporelle de l'annuaire et de toutes les autorisations qu'il a eu.) Voir ma réponse pour savoir comment supprimer tout le contenu d'un répertoire, mais laisser le répertoire lui-même en place. - Double Possible de Comment supprimer des fichiers/sous-dossiers dans un répertoire spécifique à l'invite de commande dans Windows
Vous devez vous connecter pour publier un commentaire.
del *.*
au lieu dedel *.db
. Qui va supprimer tout.del . /F /Q
Utilisation:
Créer un fichier de commandes
Copier le texte ci-dessous dans le fichier de commandes
Il va supprimer tous les fichiers et dossiers.
chcp 10000
de changer le codage UTF-16%~dp0
au lieu de définir%folder%
(rmdir "%%i" /s/q 2>NUL || del "%%i" /s/q >NUL )
pour supprimer l'erreur et la suppression des messagesCela va supprimer tout le dossier (et le dossier lui-même).
del *.*
ne supprime que les fichiers, mais pas les sous-répertoires. Détruire le contenu d'un répertoire, vous pouvez utiliser ce script:Je viens de mettre cet ensemble à partir de ce morty346 posté le:
Il ajoute une vérification rapide que le dossier défini dans la variable existe tout d'abord, les changements de répertoire dans le dossier, et supprime le contenu.
Vous pouvez faire cela en utilisant
del
et la/S
drapeau (pour le dire de manière récursive tous les fichiers de tous les sous-répertoires):La RD commande peut également être utilisée. La suppression récursive tranquillement sans une invite de commandes:
Rmdir (rd)
Essayez ce qui suit; il fonctionne pour moi.
J'ai une application qui décharges de données dans mon "C:\tmp" le dossier, et le suivant qui fonctionne le mieux pour moi. Il ne demande même pas Oui ou Pas pour supprimer les données. J'ai fait un calendrier pour elle de courir après toutes les 5 minutes
del /q c:\tmp\*.*
, qui est d'environ un million de fois plus sûr. Pour ne pas mentionnercd
ne changer de chemin, pas de voiture.Mieux encore, disons que je veux supprimer tout ce qui est sous le
C:\windows\temp
dossier.c:\windows\temp
. Je ne pense pas que c'était ce que la question initiale a été demandé.Vous pouvez utiliser robocopy à miroir un dossier vide pour le dossier de compensation.
Il fonctionne également si vous ne pouvez pas supprimer ou de recréer le dossier correspondant.
Il nécessite un emplacement de répertoire.
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).
- donc, je suis assez sûr que/E
est redondante.Utilisation
Cette version supprime sans demander:
Exemple:
C'est clair
C:\foo1\foo\foo\foo3
.(je tiens à mentionner Abdullah Sabouin réponse. Il y a une confusion à propos de moi la copie de lui. Je n'ai pas remarqué son poste. Je tiens à vous remercier melpomène pour signaler les erreurs!)
rmdir foo
erreurs sifoo
n'est pas un répertoire vide.Vous ne pouvez pas supprimer tout soit
rmdir
oudel
seul:rmdir /s /q
n'accepte pas de générique params. Doncrmdir /s /q *
l'erreur.del /s /f /q
va supprimer tous les fichiers, mais les sous-répertoires vides restera.Ma solution préférée (que j'ai utilisé dans de nombreux autres fichiers de commandes) est:
Juste une version modifiée de GregM réponse:
Vous était sur la bonne voie. Juste ajouter du code pour ajouter le dossier est supprimé de nouveau de retour.
Vous devez exécuter cette commande pour supprimer tous les fichiers: