76 votes

Comment puis-je supprimer tous les fichiers/sous-dossiers dans un dossier donné via l'invite de commandes ?

Je voudrais supprimer tous les fichiers et sous-dossiers dans un fichier de commandes sous Windows 7 et conserver le dossier principal. Fondamentalement, vider le dossier. Quelle est l'instruction en ligne de commande pour cela ?

0voto

ξέν Points 1843

Aucune des réponses déjà postées ici n'est très bonne, donc je vais ajouter ma propre réponse.

Essayez ceci:

for /f "delims=" %i in ('dir chemin\vers\dossier /s /b /a:-d') do del "%i" /f /q /s
fot /f "delims=" %i in ('dir chemin\vers\dossier /s /b /a:d') do rd "%i" /q /s

Cela devrait fonctionner.

0voto

Peter Points 51

Voici une solution en deux lignes que je viens de découvrir, exploitant peut-être un bug ou un comportement inattendu dans robocopy. Ceci fonctionne avec la dernière version de cmd et robocopy sur Windows 10 à ce jour.

Il synchronise un sous-dossier vide avec son dossier parent. En d'autres termes, il indique au dossier parent d'avoir les mêmes fichiers que le sous-dossier : aucun. Amusant, cela signifie également qu'il supprime le sous-dossier vide avec lequel il est instruit de synchroniser.

Cet exemple videra le dossier Temp de l'utilisateur actuel. Notez qu'il utilise la variable d'environnement %TEMP%, que cmd étend à ce que cela peut être, par exemple C:\Users\Dobby_the_Free\AppData\Local\Temp :

mkdir %TEMP%\i_like_cheez
robocopy /mir %TEMP%\i_like_cheez %TEMP%

0voto

rubafix Points 1

Ce script fonctionne avec des dossiers avec un espace dans le nom

for /f "tokens=*" %%i in ('dir /b /s /a:d "%~1"') do rd /S /Q "%%~i"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X