J'écris un simple fichier de commandes (remove.bat) pour supprimer un répertoire et tous ses sous-répertoires. Le fichier contient la commande suivante
rmdir /S modules
où modules est le nom du répertoire non vide.
Je reçois le message suivant -
C:\...\bin>rmdir /S modules
modules, Are you sure (Y/N)?
Comment puis-je fournir via le fichier de commandes l'entrée de la console "Y" à la question Y/N ci-dessus? Y at-il une commande qui peut faire cela?
Comme d'autres l'ont fait remarquer, vous devriez utiliser l'option /Q
. Mais il existe une autre façon de faire «à l'ancienne» qui était utilisée à une époque où les commandes ne disposaient pas d'options pour supprimer les messages de confirmation. Simplement ECHO la réponse nécessaire et canalisez la valeur dans la commande.
echo y|rmdir /s modules
Je recommande d'utiliser l'option /Q
à la place, mais la technique de canal peut être importante si vous exécutez une commande qui ne fournit pas une option permettant de supprimer les messages de confirmation.
Faites rmdir /S
pour supprimer un répertoire non vide et rmdir /Q
pour ne pas le demander. Combinez-le à rmdir /S /Q
pour supprimer discrètement les répertoires non vides.
Utilisez rmdir /S /Q modules
/Q
supprime l'invite de confirmation.
Tu peux faire
rmdir /Q
Q est pour le calme
Je veux juste ajouter que, bien que non applicable à Rmdir, un commutateur de force peut également être la solution dans certains cas. Donc, dans un sens général, vous devriez regarder vos commutateurs de commande pour/f,/q, ou une variante de ceux-ci (par exemple, Netdom RenameComputer utilise/Force, pas/f).
Le tuyau d'écho est une astuce soignée et très utile à garder car vous ne trouverez pas toujours un commutateur approprié. Par exemple, je pense que c'est le seul moyen de contourner cette invite Y/N ...
Echo y|NETDOM COMPUTERNAME WorkComp /Add:Work-Comp