Introducir datos en programa

Iniciado por batus, 2 Junio 2009, 16:12 PM

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

batus

Hola muy buenas..

vereis estoy intentando hacer un programita con un fichero bat y me estoy viendo en problemas, a ver si me podeis echar una mano.

Lo unico que quiero hacer es abrir el programa y meter unos datos, este programa me generara un fichero. Ahora esto he de hacerlo tropecientas mil veces, por lo que estoy intentando automatizarlo.

El problema es que cuando se ejecuta el programa ya deja de existir la linea c:\ por lo no ejecuta la siguiente linea de codigo y tengo que meter el dato a mano.

¿puedo meter datos en un programa de esta manera?
¿y si es asi estos datos pueden ser leidos de un fichero aparte?

A ver si me podeis echar una mano.

mil gracias

leogtz

¿Que datos?
A que prograna?
Ya probaste si el programa acepta linea de comandos?
Cual es el codigo que llevas?
Para que quieres hacerlo?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

batus

Bueno quizas me explique un poco mal.

Es un programa que nos han pasado para averiguar la radiacion en una latitud determinada y la averigua por dia. Entonces lo tengo que ahcer para los 365 dias del año, por eso tengo que automatizarlo.

El programa corre en MSDOS, y cuando se ejecuta me pide como 5 datos,y me genera un archivo por dia (a ver como los uno todos, ese es otro tema).

Y entonces estaba creando un bat, yq ue me parecio lo mas sencillo, pero lo unico que hago es ejecutar el programa y ahi se me queda clavado, ya que no consigo introducir ningun dato. Una vez lo consiga, sera hacer que esos datos los lea de un fichero que genere con los 365 dias, lo cual tampoco se hacer, pero bueno por algun lado habra que empezar.

Resumiendo, el programa se me queda colgado ;/

leogtz

Lo que podrías hacer, es usar Nircmd.exe para automatizar las acciones.

Descarga Nircmd.exe de :
http://nirsoft.net/utils/nircmd.zip

Lo dejas en la misma carpeta que el batch que usaremos:
Código (dos) [Seleccionar]
@echo off
:: "Datos_aqui" es el titulo de la ventana de tu programa
nircmd win activate ititle "Datos_aqui"
:: Envio el numero 3 a la ventana
nircmd sendkey 3 press
nircmd sendkey enter press
:: Etc.


Lo que hará el codigo es que traerá al frente la ventana de tu programa, luego en el se mandarán las teclas deseadas y luego el Enter, para pasar a lo que sigue.

Y asi sucesivamente.

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

batus

No pero el programa no se ejecuta en otra ventana, sino en el mismo msdos.

entiendo lo que me dices, pero eso me complica mucho las cosas, ya que lo que pretendia hacer es crear un fichero con 365 columnas de 5 datos cada una, y ejecutar 365 veces el programa, y que cada vez le introdujera una columna diferente.

Pero como te digo todo se ejecuta en msdos, solo que al ejecutar el programa este se queda a la espera de que le introduzca el dato, ya que me es imposible programarlo en el bat

Novlucker

Y por si acaso intenta ejecutar algo como:

Código (dos) [Seleccionar]
Tuprograma.exe respuesta1 respuesta2 respuesta3 respuesta4 respuesta5

Saludos :P

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

batus

eso ya lo intente, pero no lo acepta el programa.

pero eso es exactamente lo que busco, solo que no consigo dar con la cuestion..

gracias de todas maneras

leogtz

Tl programa ejecutalo solo con un click y ya.

Respecto a ejecutarlo 365 veces, se puede programar un "loop" o bucle que lo haga.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

batus

no entiendo tu primera frase ¿?¿? ¿que lo programe?

leogtz

Si, sería crear un bucle que ejecute 365 las acciones que hice en el batch que te postee anteriormente.
Ó ejecutar el batch una ves al día.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com