Comment supprimer récursivement le répertoire de la ligne de commande dans Windows?

Réponses:

342

deltreesi je me souviens de mon DOS .


Il semble que cela a été mis à jour ... voici ce que vous voulez:

RMDIR /S

Cela supprime le répertoire C:\testavec les invites suivantes:

rmdir c:\test /s

Cela fait la même chose, sans invites:

rmdir c:\test /s /q

En ce qui concerne la partie sudo de votre question, si vous avez besoin de davantage de privilèges, vous pouvez d’abord ouvrir un nouveau shell en tant que compte utilisateur à l’aide de la runascommande, comme ceci:

runas /user:Administrator cmd
rmdir c:\test /s /q
Colin Pickard
la source
1
@ FarmBoy, excusez-moi, il semblerait que mes souvenirs remontent beaucoup trop loin. J'ai mis à jour la réponse pour Windows XP et plus récent.
Colin Pickard
8
yes deltreeest une ancienne commande DOS. Il a été supprimé de XP et remplacé parrmdir /s
heavy
3
Que signifie le drapeau / s?
Mike R
Pour une raison quelconque, il y a un problème si vous le faites dans Powershell. Il suffit donc d'utiliser la ligne de commande de Windows.
Devid
3
@MikeR, cela pourrait signifier "sous-répertoires" ou quelque chose. findstra le même paramètre, ce qui est plus logique si c'est le cas, alors peut-être sont-ils identiques pour la cohérence.
Sam
57

Si vous souhaitez supprimer une structure de dossier longue et compliquée de l'invite de commande que RmDir ne touchera pas et que même l'explorateur ne pourra pas afficher, j'ai trouvé que robocopy peut s'avérer très efficace pour supprimer la structure. Dans l'exemple ci-dessous, nous avons une structure massive à l'intérieur de l'administrateur de dossiers. La structure est tellement profonde que rien ne peut l'enlever. Nous créons un nouveau dossier vide appelé (curieusement!) "Nouveau dossier". Nous utilisons ensuite la commande robocopy, en lui indiquant que le dossier source est "nouveau dossier" et que le dossier de destination est "D: \ Administrateur" avec le paramètre / MIR, ce qui signifie qu'il purgera tout ce qui ne se trouve pas dans le dossier source.

robocopy "D:\new folder" D:\Administrator /MIR

Dans ce cas, les chemins des dossiers étaient si longs qu'ils ne pourraient même pas être insérés dans la mémoire tampon de la fenêtre d'invite de commande, mais Robocopy parcourt la structure et supprime tous les fichiers et dossiers "supplémentaires" (c'est-à-dire tout ce qui ne se trouve pas dans le nouveau dossier vide, ce qui est tout. ).

Sean
la source
11
C'est la seule solution qui fonctionnera lorsque votre chemin aura plus de 250 caractères impairs
Calm Storm
10

Si vous utilisez Windows Vista +, vous pouvez effectuer les opérations suivantes dans PowerShell:

rm C:\path\to\delete -r -f[orce]
Devesh Khandelwal
la source
6
Windows 10 dit -fest ambigu. Mais vous pouvez courirrm -r -force <path>
BrunoLM
6

Pour moi, ce qui fonctionne est

del /s dir

Vous pouvez ajouter /qpour désactiver la confirmation. Je n'ai jamais réussi à rmdirtravailler (sous XP)

Vincent Fourmond
la source
6
Vous devriez probablement cesser d'utiliser XP, il n'est plus pris en charge ...
Eric Wilson
3
Pour moi, cela supprime tous les fichiers de manière récursive, mais ne supprime pas les répertoires eux-mêmes - dirn'est également pas supprimé.
sergiol
2

Si vous avez un très long chemin (comme je l’ai fait à cause d’une erreur du programme Java), même Robocopy ne peut pas le faire. Il est descendu sur mon chemin pendant environ 30 secondes puis pendu.

Ma solution: si vous pouvez déplacer l'intégralité du chemin du problème d'un dossier à un autre, vous pouvez supprimer de manière récurrente et répétitive certains escaliers de répertoires à partir du haut.

Ce lot joue au pingpong entre les deux répertoires leer et leer2 et élimine 8 "bibliothèques" à chaque fois. Si votre chemin contient des fichiers, vous devez ajouter d'autres commandes pour les effacer.

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop
Paulmann
la source
2

À partir de CMD, exécutez simplement RD / s C: \ path \ to \ delete Appuyez sur Y pour répondre.

/ s garantit que tous les sous-répertoires sont également supprimés.

Référence Exécuter l'aide RD à partir de la ligne de commande

Rachit Ranjan
la source
2
Merci pour votre réponse, mais cette information était déjà dans la réponse acceptée. ( rdet rmdirsont les mêmes.) Peut-être que cela ferait un commentaire là-bas.
Ben N
0

Ceci supprimera "mon dossier" sans invite:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
JerryGoyal
la source