web-dev-qa-db-fra.com

Comment lire les entrées de la console dans un fichier batch?

Comment lire les entrées de la console dans un fichier batch? Ce que j'essaie de réaliser, c'est la fonctionnalité de scanf en C. Comment puis-je faire la même chose dans un fichier de traitement par lots?

73
Nohsib

L'extrait de code contenu dans le doublon proposé lié lit les entrées utilisateur.

ECHO A current build of Test Harness exists.
set /p delBuild=Delete preexisting build [y/n]?: 

L'utilisateur peut taper autant de lettres qu'il le souhaite et il entrera dans la variable delBuild.

131
Raymond Chen

Comme tout le monde le dit, en utilisant set /p varname="Prompt message" est assez. Si vous souhaitez simplement garder une instance cmd ouverte au lieu de la quitter immédiatement, procédez comme suit:

set /p temp="Hit enter to continue"

à la fin de votre script, la fenêtre reste ouverte.

21
TankorSmash

En plus de la réponse existante, il est possible de définir une option par défaut comme suit:

echo off
ECHO A current build of Test Harness exists.
set delBuild=n
set /p delBuild=Delete preexisting build [y/n] (default - %delBuild%)?:

Cela permet aux utilisateurs d'appuyer simplement sur "Entrée" s'ils veulent entrer la valeur par défaut.

14
Richard Williams