Est-il possible dans un fichier de commandes MS-DOS de suspendre le script et d'attendre que l'utilisateur appuie sur la touche Entrée?
Je souhaite faire cela dans une boucle for. Après chaque itération, je veux que le script suspende et attende que l'utilisateur appuie sur 'Entrée'
Il existe une commande pause
qui le fait, 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, comme par exemple:
set /p DUMMY=Hit ENTER to continue...
La commande pause
est ce que vous recherchez. Si vous recherchez UNIQUEMENT le cas où enter est touché, vous pouvez abuser de la commande runas
:
runas /user:# "" >nul 2>&1
ce que j’aime plus que set/p=
est que si vous appuyez sur d’autres boutons que vous entrez, ils ne seront pas affichés.
En fonction du système d'exploitation que vous utilisez, si vous êtes flexible, alors CHOICE
peut être utilisé pour attendre presque n'importe quelle touche EXCEPT
enter
Si vous faites vraiment référence à ce que Microsoft insiste pour appeler "Invite de commandes", qui est simplement un émulateur MS-DOS, alors peut-être que TIMEOUT
pourrait convenir à votre objectif (timeout /t -1
attend une clé, 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 juste ENTER ou autre chose, se terminant par ENTER a été entré.