Je souhaite avoir un fichier de commandes qui supprimera tous les dossiers et fichiers de mon dossier cache pour ma boîte à outils sans fil.
Actuellement, j'ai ce qui suit:
cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db
Cela supprimera tous les fichiers .db de mon répertoire RMS , mais je souhaite supprimer chaque élément de ce répertoire. Comment puis-je faire ceci?
batch-file
batch-processing
user69514
la source
la source
del /?
à l'invite. Il vous donnera des informations sur la façon d'utiliser l'outil. Dans ce cas,del *.* /s
cela fonctionnerait mais ne le faites pas dans le mauvais répertoire!rmdir /s /q c:\users\tbrollo\j2mewtk\2.5.2\appdb\RMS
RMS
répertoire, ce qui n'est peut-être pas ce qui était prévu. (En fait, c'est souvent ce que je ne veux pas , car je perds alors l'horodatage d'origine du répertoire et toutes les autorisations qu'il avait.) Voir ma réponse pour savoir comment supprimer tout le contenu d'un répertoire mais laisser le répertoire lui-même dans endroit.Réponses:
del *.*
au lieu dedel *.db
. Cela supprimera tout.la source
del . /F /Q
Utilisation:
Créer un fichier batch
Copiez le texte ci-dessous dans le fichier de commandes
Il supprimera tous les fichiers et dossiers.
la source
chcp 10000
par changer le codage en UTF-16(rmdir "%%i" /s/q 2>NUL || del "%%i" /s/q >NUL )
pour supprimer les messages d'erreur et de suppressionCela supprimera tout du dossier (et le dossier lui-même).
la source
del *.*
supprimera uniquement les fichiers, mais pas les sous-répertoires. Pour détruire le contenu d'un répertoire, vous pouvez utiliser ce script:Les
pushd
modifications dans le répertoire dont vous souhaitez supprimer les enfants. Ensuite, quand onrd
demande de supprimer le répertoire courant et tous les sous-répertoires, la suppression des sous-répertoires réussit, mais la suppression du répertoire courant échoue - car nous y sommes. Cela produit une erreur qui2> NUL
avale. (2 étant le flux d'erreur).la source
Je viens de mettre cela ensemble à partir de ce que morty346 a publié:
Il ajoute une vérification rapide que le dossier défini dans la variable existe en premier, change de répertoire dans le dossier et supprime le contenu.
la source
Vous pouvez le faire en utilisant
del
et le/S
drapeau (pour lui dire de récurer tous les fichiers de tous les sous-répertoires):La commande RD peut également être utilisée. Supprimer de manière récursive silencieusement sans invite:
Rmdir (rd)
la source
la source
Essayez ce qui suit; ça marche pour moi.
J'ai une application qui vide les données dans mon dossier "C: \ tmp", et ce qui suit fonctionne le mieux pour moi. Il ne demande même pas Oui ou Non pour supprimer les données. J'ai fait un calendrier pour qu'il s'exécute toutes les 5 minutes
la source
del /q c:\tmp\*.*
, ce qui est environ un million de fois plus sûr. Sans parler ducd
changement de chemin, pas de lecteur.Mieux encore, disons que je veux tout supprimer sous le
C:\windows\temp
dossier.la source
c:\windows\temp
. Je ne pense pas que c'était ce que la question initiale posait.Vous pouvez utiliser robocopy pour mettre en miroir un dossier vide dans le dossier que vous effacez.
Cela fonctionne également si vous ne pouvez pas supprimer ou recréer le dossier réel.
Il nécessite un répertoire vide existant.
la source
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).
je suis donc assez sûr que/E
c'est redondant.Utilisation
Cette version supprime sans demander:
Exemple:
Cela sera clair
C:\foo1\foo\foo\foo3
.(Je voudrais mentionner la réponse d'Abdullah Sabouin . Il y a eu une confusion au sujet de ma copie. Je n'ai pas remarqué son message. Je tiens à remercier melpomene d' avoir signalé des erreurs!)
la source
rmdir foo
erreurs si cefoo
n'est pas un répertoire vide.Vous ne pouvez pas tout supprimer avec l'un
rmdir
ou l' autre oudel
seul:rmdir /s /q
n'accepte pas les paramètres génériques. Il enrmdir /s /q *
sera de même pour l'erreur.del /s /f /q
supprimera tous les fichiers, mais les sous-répertoires vides resteront.Ma solution préférée (comme je l'ai utilisée dans de nombreux autres fichiers batch) est:
la source
Juste une version modifiée de la réponse GregM :
la source
Vous étiez sur la bonne voie. Ajoutez simplement du code pour ajouter le dossier qui est à nouveau supprimé.
la source
Vous devez exécuter cette commande afin de supprimer tous les fichiers:
la source
del *.*
(avec un espace)