Crear un .bat para depuración.

Started by Drumpi, October 04, 2009, 06:13:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:

Duda tonta, pero que no se dónde buscar información.
Siempre he usado los scripts para compilar, sobre todo con windows. El caso es que con Bennu quiero hacerlo de forma distinta, sin tener que copiar el runtime (más que nada, por tener que ir módulo a módulo) y no se cómo hacerlo. No encuentro ninguna página para aprender los comandos del .bat.
Básicamente es para indicarle que compile y ejecute usando los binarios y librerías de otra carpeta, suelo tenerlos en (...)/binarios/(version)/ y luego la estructura normal, las cuatro carpetas bin, externals, libs y modules.

Muchas gracias.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

Joder, sería buen aporte.

Supongo que algunos ya sabéis que yo opto por tener un .bat SEN-CI-LLÍ-SI-MO que accede a las DLL que tiene copiadas en /DLL en su mismo directorio.

Como ventaja yo puedo pasar el juego a cualquiera y le compila, como desventaja tengo por aquí 200+ proyectos todos ellos con sus DLL ocupando su mordisco correspondiente de disco duro.

Sigo con atención este hilo, lo tengo el punto de mira ;)
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

osk

Si quieres saber los "comandos del Bat", y en general, de la consola de comandos de Windows, al menos en el XP vas a "Inicio->Ayuda y soporte técnico" y en buscar le dices "Archivos por lotes". Ahí lo tienes todo.

Windgate

Ahí está todo OK... Y con los .bat se pueden hacer maravillas... Pero yo espero que alguien tenga un .bat ya funcionando con lo que decimos, que nos sirva de ejemplo, habrá que enredar con variables de entorno y alguna cosa más y yo de esas cosas hace ya años que no las toco.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

compila_con.bat

set BENNUROOT=c:/devbennu
set VERSION=%1
set JUEGO=%2
set PATH=%BENNUROOT%/binarios/%VERSION%/bin;%BENNUROOT%/binarios/%VERSION%/externals;%BENNUROOT%/binarios/%VERSION%/libs;%BENNUROOT%/binarios/%VERSION%/modules;%PATH%
bgdc %JUEGO%.prg
bgdi %JUEGO%.dcb

se usaría tal que así
compila_con r115 mijuego
O bien lo editas y cambias los valores de bennuroot, version y juego
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Windgate

Gracias DCelso, mañana lo pruebo, qué horas :o me he despertado porque unos mosquitos me estaban devorando lentamente :'(
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

Genial, muchas gracias, DCelso, es justo lo que me hacía falta.
Con esto, hacer la adaptación a lo que necesito será coser y cantar.
Sólo una duda ¿PATH es algún tipo de variable predeclarada? ¿Por qué hay que poner al final de la linea de nuevo %PATH%?

No te doy dos karmas, porque sólo se puede uno por hora :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

Sasto. Es del sistema, es donde busca windows para encontrar los ejecutables y librerías a las que no accedes con la ruta absoluta.
La añadimos al final para que primero busque los binarios y librerías en nuestros directorios y si no están allí sigua buscando donde lo haría antes. Para el trabajo que le vamos a dar no es necesario añadirla al final pero tampoco está de más :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

TYCO

#8
PATH=D:\BENNU;%PATH%

Esa linea añade la ruta de D:\BENNU a lo que PATH valga. PATH es una variable de windows, (linux no sé si se llamara así) y como su nombre indica... Camino... Ruta... así cuando escribas un comando... va a buscarlo... si lo encuentra en esos PATH lo ejecuta, o también lo ejecutará si lo encuentra en el directorio en el que estas.

Yo tengo esto en un BAT:

@ECHO OFF
\_DIVGAMES_\Bennu\bgdc -g -c Rally.prg
pause
\_DIVGAMES_\Bennu\bgdi Rally.dcb >Log.txt 2>Error.txt


Y me funciona bien, sin añadir los PATH ni nada... es cierto que están todos los archivos en esa carpeta de Bennu, pero no los del rally, porque ese BAT lo tengo en la carpeta del rally, vamos y a mi me funciona perfectamente desde hace muchos meses.

NOTA: Para cuando da error al compilar... interrumpo a ejecución del BAT con las teclas "Control+C" (para que no se ejecute la siguiente línea.. osea el rally).
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

DCelso

Para eso puedes probar esto otro y evitar el uso del control c.

@echo off
set BENNUROOT=C:\BennuGD\
set JUEGO=%1
set PATH=%BENNUROOT%\bin;%BENNUROOT%\externals;%BENNUROOT%\libs;%BENNUROOT%\modules;%PATH%
bgdc %JUEGO%.prg
if "%ERRORLEVEL%"=="1" bgdi %JUEGO%.dcb
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Juer ¿Y todo eso donde lo enseñan? jamás vi nada parecido en tutoriales, cursos ni demás ¿En viejas clases de informática de MS-DOS?
Hoy día, las "clases de informática" se basan en "esto es para cerrar windows", "así funciona el paint" o "vamos a aprender a escribir en word" :S
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

Eso del errorlevel lo aprendí en su día editando un "juego" que era basicamente un .bat de "elige tu propia aventura". Podias hacer variables leer datos desde teclado sobre ellas, etc.

Un infierno, mas facil programar con Bennu xD
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

pues si te explico como funciona el comando choice lo flipas :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

panreyes

Info:
http://es.wikipedia.org/wiki/Batch

Y luego, yo utilizo este método en todos mis nuevos juegos:
@echo off
cd src
echo Compilando...
..\bennu\bgdc -g pixdash.prg
move pixdash.dcb ..
pause
rem AQUÍ ES DONDE VEO LOS ERRORES DE COMPILACIÓN
cd ..
bennu\bgdi pixdash.dcb
pause
exit
rem AQUÍ PUEDO VER LA RAZÓN DE UNA SALIDA ANORMAL DEL PROGRAMA O DE SAYS QUE HAGO PARA DEPURACIÓN
rem REM SIRVE PARA HACER UN COMENTARIO Y QUE NO SE VEA

Windgate

Sí, yo también suelo poner pause entre compilación e interpretación para ver los errorcetes. Buena idea lo del pause adicional después de la interpretación para ver salidas subnormales... Digo... Anormales del programa.

En cuanto a choice, el juego del que hablo también tenía choice, era muy peculiar, odiosamente peculiar.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es