web-dev-qa-db-fra.com

Comment saisir une chaîne de l'utilisateur dans une variable d'environnement à partir d'un fichier de commandes

Je veux demander à l'utilisateur des détails d'entrée, puis l'utiliser plus tard comme argument de ligne de commande.

31
EFraim

Vous pouvez utiliser set avec le /p argument:

SET /P variable=[promptString]

Le commutateur/P vous permet de définir la valeur d'une variable sur une ligne d'entrée entrée par l'utilisateur. Affiche la chaîne d'invite spécifiée avant de lire la ligne d'entrée. L'inviteString peut être vide.

Donc, utilisez simplement quelque chose comme

set /p Input=Enter some text: 

Plus tard, vous pouvez utiliser cette variable comme argument d'une commande:

myCommand %Input%

Attention cependant, si votre entrée peut contenir des espaces, c'est probablement une bonne idée de la citer:

myCommand "%Input%"
52
Joey

Une façon plutôt détournée, juste pour être complet:

 for /f "delims=" %i in ('type CON') do set inp=%i

Bien sûr, cela nécessite ^ Z comme terminateur, et donc la réponse de Johannes est meilleure à tous égards.

2
EFraim