2011-10-24 12 views
58

¿Cómo leo la entrada desde la consola en un archivo por lotes? Lo que intento lograr es la funcionalidad de scanf en C. ¿Cómo puedo hacer lo mismo en un archivo por lotes?¿Cómo leer la entrada desde la consola en un archivo por lotes?

+0

posible duplicado de [Problema con la entrada del usuario en mi archivo por lotes] (http://stackoverflow.com/questions/916413/problem-with-user-input-in-my-batch-file) –

+0

@ Raymond: Nope , la pregunta es leer varios caracteres como una cadena desde el teclado a una variable. – Nohsib

+0

El comando 'set/p' lee cualquier tipo de usuario, ya sea una letra o múltiple. –

Respuesta

96

El fragmento de código en el duplicado propuesto vinculado lee la entrada del usuario.

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

El usuario puede escribir tantas letras como desee, y entrará en la variable delBuild.

+0

lo tengo !!! Gracias – Nohsib

+22

Nota: puede utilizar la entrada del usuario con '% delBuild%' – Jacob

+1

Tenga en cuenta que 'echo! DelBuild!' Le dará un resultado más confiable en la ejecución cuando 'setlocal EnableDelayedExpansion' habilitado – xacinay

8

Además de la respuesta ya existente, es posible establecer una opción predeterminada de la siguiente manera:

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

Esto permite a los usuarios simplemente pulsa "Enter" si quieren entrar en el valor predeterminado.

10

Como todos dicen, usar set /p varname="prompt message" es suficiente. Si acaba rápidamente que buscan mantener una instancia abierta cmd en lugar de salir de inmediato, simplemente haciendo lo siguiente es lo suficientemente

set /p temp="Hit enter to continue" 

al final de la secuencia de comandos y se va a mantener la ventana abierta.

+9

para este propósito, alguien inventó el comando 'pause'. También es 'set/p', no' set \ p'. – Stephan

+4

"Como todo el mundo está diciendo", implica que la respuesta ya está dada, por lo que es innecesario otro sin más información – jeb

+1

@jeb tienes razón. mi problema era que incluían variables y eco, mientras que yo no necesitaba nada de eso. Me tomó uno o dos minutos analizar sus respuestas, ya que no tengo experiencia por lotes. Creo que mi respuesta satisface la respuesta mínima adecuada para mis necesidades. – TankorSmash

Cuestiones relacionadas