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

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

Je souhaite le faire dans une boucle for. Après chaque itération, je veux que le script fasse une pause et attends que l'utilisateur frappe 'Enter'

109
demandé sur dr_rk 2013-04-30 18:28:35

3 réponses

Il y a une commande pause qui fait exactement cela, bien que ce ne soit pas spécifiquement la touche Entrée.

Si vous voulez vraiment attendre uniquement la touche Entrée, vous pouvez utiliser la commande set pour demander une entrée utilisateur avec une variable fictive, quelque chose comme:

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

175
répondu abjuk 2013-04-30 14:42:44

pause commande est ce que vous cherchez. Si vous ne cherchez que le cas où enter est frappé, vous pouvez abuser de la commande runas:

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

L'écran sera gelé jusqu'à ce que la touche Entrée soit atteinte.Ce que j'aime plus que set/p=, c'est que si vous appuyez sur d'autres boutons que enter, ils ne seront pas affichés.

11
répondu npocmaka 2013-05-20 17:08:44

Selon le système d'exploitation que vous utilisez, si vous êtes flexible, puis CHOICE peut être utilisé à attendre sur presque n'importe quelle touche EXCEPT entrer

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

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

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 que ce soit simplement ENTER ou autre chose, se terminant par ENTER a été saisi.

1
répondu Magoo 2013-04-30 19:33:16