leer un array por entrada estandar (cmd)

Iniciado por dijsktra, 29 Noviembre 2019, 15:52 PM

0 Miembros y 1 Visitante están viendo este tema.

dijsktra

Hola.
Tengo experiencia en C pero me gustaría aprender el criptico command.com

Hay algunos tutoriales en la sección de mensajes fijos, pero no encuentro la respuesta.

Se que

set /P VAR=

Lee un escalar. Pero no consigo leer un array por entrada estandar.

algo como

for %%i in (0,1,10) do (
  set /P A[%%i]=
)

Que desde luego, no funciona. si alguien puede decirme...
Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)

@XSStringManolo


dijsktra

Gracias, esa página ya la vi antes de consultar, y no encontré la respuesta. Necesito tomar los datos de la entrada estándar.
Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)

EdePC

Saludos,

- Dependerá del formato de tu entrada, por ejemplo:

001 [espacio] 002 [espacio] 003 [espacio] ...

001 [enter] 002 [enter] 003 [enter] ...

001,002, 003


etc.

- Tratando de entender tu código previo deduzco que quieres el tipo 001 [enter] 002 [enter] ..., aunque no sé que parte no funciona o que salida deseas obtener. A mí me funciona lo siguiente:

Código (dos) [Seleccionar]
@Echo Off

For /L %%i In (0, 1, 5) Do (
  Set /P A[%%i]=
)

For /L %%i In (0, 1, 5) Do (
  Set A[%%i]
)

Pause


001
002
003
004
005
006
A[0]=001
A[1]=002
A[2]=003
A[3]=004
A[4]=005
A[5]=006
Presione una tecla para continuar . . .


- Si quieres entradas tipo C como 001 [espacio] 002 [espacio] ... tienes que guardar esa String en la variable y luego hacerle un Split con For y quizá tokens y/o delims XD