180 votes

MS-DOS Pause du fichier Batch avec la touche Entrée

Est-il possible dans un fichier batch MS-DOS de mettre en pause le script et d'attendre que l'utilisateur appuie sur la touche Entrée ?

Je souhaite faire cela à l'intérieur d'une boucle for. Après chaque itération, je veux que le script fasse une pause et attende que l'utilisateur appuie sur 'Enter'.

296voto

abjuk Points 616

Il y a un pause qui fait exactement cela, bien qu'il ne s'agisse pas spécifiquement de la touche Entrée.

Si vous voulez vraiment n'attendre que la touche Entrée, vous pouvez utiliser la fonction set pour demander l'entrée de l'utilisateur avec une variable fictive, quelque chose comme :

set /p DUMMY=Hit ENTER to continue...

16voto

npocmaka Points 7794

pause La commande est ce que vous recherchez. Si vous cherchez UNIQUEMENT le cas où la touche Entrée est appuyée, vous pouvez abuser de la commande runas commandement :

runas /user:# "" >nul 2>&1

l'écran sera gelé jusqu'à ce que vous appuyiez sur la touche Entrée. set/p= est que si vous appuyez sur d'autres boutons que celui de l'entrée, ils ne seront pas affichés.

16voto

Vic_HT Points 31

Vous pouvez le faire avec le pause exemple :

dir
pause
echo Now about to end...
pause

4voto

Magoo Points 22274

Selon le système d'exploitation que vous utilisez, si vous êtes flexible, alors CHOICE peut être utilisé pour attendre sur presque toutes les clés EXCEPT entrez

Si vous faites vraiment référence à ce que Microsoft s'obstine à appeler "Command Prompt", qui n'est qu'un émulateur MS-DOS, alors peut-être TIMEOUT peut convenir à votre objectif ( timeout /t -1 attend n'importe quelle touche, pas seulement ENTER ) et bien sûr CHOICE est à nouveau disponible dans les éditions récentes de WIN.

Et un avertissement sur SET /P - alors que set /p DUMMY=Hit ENTER to continue... fonctionnera,

set "dummy="
set /p DUMMY=Hit ENTER to continue...
if defined dummy (echo not just ENTER was pressed) else (echo just ENTER was pressed)

détectera si c'est simplement ENTER ou quelque chose d'autre, se terminant par ENTER, qui a été tapé.

3voto

La seule réponse valable serait la pause commandement.

Bien qu'il n'attende pas spécifiquement la touche 'ENTER', il attend toute touche pressée.

Et juste au cas où vous voulez que ce soit pratique pour l'utilisateur, pause est la meilleure option.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X