web-dev-qa-db-fra.com

Comment fournir une entrée de console (oui/non) dans le cadre d'un fichier de commandes sous Windows.

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

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? 

14
CodeBlue

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.

30
dbenham

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.

3
sschrass

Utilisez rmdir /S /Q modules

/Q supprime l'invite de confirmation.

2
Kevin Richardson

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

Lien vers un message StackOverflow presque identique

0
u8it