J'ai besoin d'un moyen de supprimer récursivement un dossier et ses enfants.
Existe-t-il un outil préinstallé pour cela, ou dois-je en écrire un ?
DEL /S
ne supprime pas les répertoires.
DELTREE
a été supprimé de Windows 2000+.
J'ai besoin d'un moyen de supprimer récursivement un dossier et ses enfants.
Existe-t-il un outil préinstallé pour cela, ou dois-je en écrire un ?
DEL /S
ne supprime pas les répertoires.
DELTREE
a été supprimé de Windows 2000+.
RMDIR ou RD si vous utilisez l'Invite de commande classique (cmd.exe) :
rd /s /q "path"
RMDIR [/S] [/Q] [drive :]chemin
RD [/S] [/Q] [drive :]path
/S Supprime tous les répertoires et fichiers du répertoire spécifié en plus du répertoire lui-même. Utilisé pour supprimer une arborescence de répertoires.
/Q Mode silencieux, ne pas demander si l'on peut supprimer une arborescence de répertoires avec /S
Si vous utilisez PowerShell, vous pouvez utiliser Remove-Item
(qui est un alias de del
, erase
, rd
, ri
, rm
et rmdir
) et prend un -Recurse
qui peut être court-circuité à -r
rd -r "path"
Il faut savoir que pour un grand nombre de fichiers, rmdir /s /q est généralement beaucoup plus rapide que l'opération équivalente "select dir, shift + delete" dans l'explorateur.
Pourquoi ne pas utiliser des drapeaux pour faire correspondre les noms des répertoires ? Si je veux supprimer tous les répertoires sous foo\, rmdir /s /q foo\*
donne une erreur pour syntaxe incorrecte.
Cette méthode ne supprime pas les fichiers, comme le fait rm -rf, et elle renvoie également une valeur non nulle lorsque le répertoire n'existe pas, donc rd /s /q foo && echo "yay"
échouera si le répertoire "foo" n'existe pas.
Mon héros ! Et une astuce : Vous créez votre dossier vide à C:\empty puis, une fois dans chaque dossier fou, on peut simplement faire robocopy /mir c:\empty .
Le site takeown
m'a aidé car j'ai copié un dossier du système Linux avec rsync par erreur et je n'avais aucun privilège pour supprimer ce dossier... Même la robocopy n'a pas fonctionné. Merci
Très belle réponse. Elle fonctionne. (toutes les autres réponses de la page ne fonctionnent pas). Mais cacls est déprécié. Est-il possible de faire une réponse contemporaine, s'il vous plaît ? La deuxième variante fonctionne déjà et n'est pas dépréciée.
RMDIR **[/S]** [/Q] [drive:]path
RD **[/S]** [/Q] [drive:]path
/S
Supprime tous les répertoires et fichiers du répertoire spécifié, en plus du répertoire lui-même. Utilisé pour supprimer une arborescence de répertoires.
/Q
Mode silencieux, ne pas demander si l'on peut supprimer une arborescence de répertoire avec /S
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Est-ce que del /s (a) ne fonctionne pas du tout (il n'est disponible que dans certaines versions) ou (b) laisse le répertoire de premier niveau mais supprime tout ce qui se trouve en dessous ou (c) laisse tous les répertoires tout en supprimant tous les fichiers ?
1 votes
@Aaron, réponse c, vous devez utiliser rmdir /s pour supprimer les répertoires et les fichiers.
4 votes
TLDR : utiliser
rmdir /S /Q