Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: dijsktra en 29 Noviembre 2019, 15:52 pm



Título: leer un array por entrada estandar (cmd)
Publicado por: dijsktra en 29 Noviembre 2019, 15:52 pm
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

Código:
set /P VAR=

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

algo como

Código:
for %%i in (0,1,10) do (
   set /P A[%%i]=
)
Que desde luego, no funciona. si alguien puede decirme...


Título: Re: leer un array por entrada estandar (cmd)
Publicado por: @XSStringManolo en 29 Noviembre 2019, 19:53 pm
Se llama batch https://www.tutorialspoint.com/batch_script/batch_script_arrays.htm


Título: Re: leer un array por entrada estandar (cmd)
Publicado por: dijsktra en 29 Noviembre 2019, 21:01 pm
Gracias, esa página ya la vi antes de consultar, y no encontré la respuesta. Necesito tomar los datos de la entrada estándar.


Título: Re: leer un array por entrada estandar (cmd)
Publicado por: EdePC en 1 Diciembre 2019, 04:29 am
Saludos,

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

Código:
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
  1. @Echo Off
  2.  
  3. For /L %%i In (0, 1, 5) Do (
  4.  Set /P A[%%i]=
  5. )
  6.  
  7. For /L %%i In (0, 1, 5) Do (
  8.  Set A[%%i]
  9. )
  10.  

Código:
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