Disons qu'il y a un dossier dans le D:
lecteur:
D:\Air
D:\Abonden
D:\All
D:\Whatever
Je veux supprimer tous les dossiers commençant par "A" (y compris tous les sous-dossiers et fichiers). J'ai essayé cette commande:
rmdir D:\A* /s /q
Je reçois une erreur, cependant :(
Le nom de fichier, le nom de répertoire ou la syntaxe d'étiquette de volume est incorrect.
La del
commande fonctionne avec *
, mais je dois également supprimer les dossiers.
Existe-t-il un moyen d'y parvenir via la rmdir
commande?
windows
command-line
batch
serdar
la source
la source
Réponses:
Utilisez-le pour tester cependant:
Cela dirigera les commandes à exécuter dans l'invite de commande et vous permettra de voir ce qui se passe.
Gardez à l'esprit que cela recherchera également les sous-dossiers tels que "C: \ temp \ jjj \ aaa" et supprimera le dossier aaa. Si vous voulez qu'il regarde simplement les dossiers de niveau supérieur "C: \ temp \ aaa", supprimez le
"/s"
de la commande.La clé de ceci est le A *, où vous mettriez votre chaîne de recherche. Cela acceptera les caractères génériques tels que
aaa*
,aaa*
et*aaa*
si vous le souhaitez.la source
for /f %%i in ('dir /a:d /s /b A*') do rd /s /q %%i
Suppression de dossiers à l'aide de caractères génériques
La commande
rmdir
/rd
seule ne prend pas en charge les caractères génériques (c'est-à-dire*
et?
). Vous pouvez contourner cette limitation en l'enveloppant dans unefor
boucle.Exemple d'utilisation
Remarque Lorsque vous supprimez des fichiers et des dossiers, vous souhaiterez peut-être d'abord remplacer la
rd
commandeecho
. De cette façon, vous pouvez vous assurer que tout ce qui ne devrait pas être supprimé le serait réellement.Motifs multiples
Afin de supprimer plusieurs dossiers correspondant à différents modèles, la syntaxe n'est pas trop différente. Comme @dbenham l'a correctement souligné, une commande sur une seule ligne suffit. Vous pouvez également spécifier différents chemins:
Bonus - Vérification de l'existence du dossier
Dans le cas où vous souhaitez vérifier si des dossiers spécifiques existent, vous pouvez utiliser la commande suivante:
Lectures complémentaires
la source
FOR /D
etFOR /D /R
. Utilisez simplementin( "A*" "B*" "C?D" )
./R
option, car le sous-dossier qui correspond au masque peut se trouver sous un parent qui ne le fait pas.Comment personne n'a-t-il encore parlé des fichiers forf au PO?!
forfiles /P D:\ /M A* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"
la source
for /d
comme dans and31415 est à la fois plus propre et plus efficace.adn31415 la réponse est correcte mais casse si vous le mettez dans un script batch ou cmd. Je me suis cogné la tête pendant des heures jusqu'à ce que je comprenne comment vous l'utilisez.
Dans la fenêtre de commande DOS:
En script Batch ou cmd:
Si vous voulez le mettre dans un fichier ".bat" ou ".cmd", vous devez doubler les caractères "%".
la source