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


Quelle est l'équivalent Windows de rm -r [directory-name]?


212
2017-08-23 19:29


origine




Réponses:


deltree si je me souviens de mon DOS.


Il semble que ce soit mis à jour ... c'est ce que vous voulez:

RMDIR /S

Cela supprime le répertoire C:\test, avec des invites:

rmdir c:\test /s

Cela fait la même chose, sans invites:

rmdir c:\test /s /q

Concernant la partie sudo de votre question, si vous avez besoin de plus de privilèges, vous pouvez d’abord ouvrir un nouveau shell en tant que runas commande, comme ceci:

runas /user:Administrator cmd
rmdir c:\test /s /q

311
2017-08-23 19:30



@FarmBoy, excusez-moi, il semblerait que mes souvenirs remontent trop loin. J'ai mis à jour la réponse pour Windows XP et les versions plus récentes. - Colin Pickard
Oui deltree est une ancienne commande DOS. Il a été supprimé dans XP et remplacé par rmdir /s - heavyd
Que représente le drapeau / s? - Mike R
Pour une raison quelconque, il y a un problème si vous faites cela dans Powershell. Il suffit donc d'utiliser la ligne de commande de Windows. - Devid
@MikeR, cela pourrait signifier "sous-répertoires" ou quelque chose. findstr a le même paramètre, ce qui est plus logique que cela, alors peut-être sont-ils les mêmes pour la cohérence. - Sam


Si vous souhaitez supprimer une structure de dossiers longue et compliquée de l'invite de commande que RmDir ne touchera pas et que même l'explorateur ne peut pas afficher, j'ai trouvé que robocopy peut être très efficace pour supprimer la structure. Dans l'exemple ci-dessous, nous avons une structure massive dans l'administrateur du dossier, la structure est tellement profonde que rien ne peut la supprimer. Nous créons un nouveau dossier vide appelé (étrangement!) "Nouveau dossier". Nous utilisons ensuite la commande robocopy, lui indiquant que le dossier source est "new folder" et que le dossier de destination est "D: \ Administrator" avec le paramètre / MIR, ce qui signifie qu’il purgera tout ce qui ne figure 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 correspondaient même pas à la fenêtre de l'invite de commandes Screen Buffer, mais Robocopy traversera la structure et supprimera tous les fichiers et dossiers "supplémentaires" (c.à.d. ).


54
2017-08-09 23:13



Ceci est la seule solution qui fonctionnera lorsque votre chemin est plus de 250 caractères longs - Calm Storm


Vous pouvez effectuer les opérations suivantes dans PowerShell, si vous êtes sous Windows Vista +:

rm C:\path\to\delete -r -f[orce]

9
2017-08-22 16:51



Windows 10 dit -f c'est ambigu. Mais tu peux courir rm -r -force <path> - BrunoLM


Pour moi, ce qui fonctionne est

del /s dir

Vous pouvez ajouter /q pour désactiver la confirmation. Je n'ai jamais réussi à obtenir rmdir travailler (sur XP)


4
2018-05-17 07:42



Vous devriez probablement arrêter d'utiliser XP, ce n'est plus supporté ... - Eric Wilson
Pour moi, cela supprime tous les fichiers récursivement, mais ne supprime pas les répertoires eux-mêmes - dirn'est pas non plus supprimé - sergiol


Si vous avez un très long chemin (comme je l'ai fait à cause d'une erreur de programme Java), même robocopy ne peut pas le faire. Il est descendu pendant environ 30 secondes sur mon chemin et ensuite accroché.

Ma solution: si vous pouvez déplacer tout le chemin du problème d'un dossier à un autre, vous pouvez couper de manière récursive et répétée certains escaliers du répertoire.

Ce lot joue au pingpong entre les deux répertoires leer et leer2 et coupe 8 «bibliothèques» chaque fois. Si votre chemin contient des fichiers, vous devez ajouter des commandes supplémentaires 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

2
2018-03-05 08:37





De CMD Il suffit d'exécuter RD / s C: \ path \ to \ delete Appuyez sur Y à l'invite

/ s permet également de supprimer tous les sous-répertoires.

Référence Courir aide RD à partir de la ligne de commande


2
2018-01-22 06:44



Merci pour votre réponse, mais cette information était déjà dans la réponse acceptée. (rd et rmdir sont les mêmes.) Peut-être que cela ferait comme un commentaire là-bas. - Ben N


Cela supprimera "mon dossier" sans invite:

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

0
2017-07-04 07:09