![]() |
ó Código BAT o con Delphi
Me preguntaba como relacionar con Delphi para que funcione un archivo BAT o en su defecto LO HAGA DESDE Delphi, mi problema. Necesito crear un archivo que me realice la tarea del brcc32 que crea archivos de recursos. Inicialmente estaba intentando con un CONVERSOR.BAT, que contiene estas líneas:
PATH C:\Archivos de programa\Borland\Delphi7\Bin brcc32 PRUEBA.rc PRUEBA.res El código BAT sencillo de arriba me funcionaba bien para uno, pues detectaba donde se encontraba el ejecutable brcc32 para transformar un archivo de recursos de ".rc" a ".res", este BAT trabajaba muy bien en el directorio que me encontraba con un doble click. El problema era, que CUANDO CREABA OTRO fichero .rc, y otro, y otro, etc, cada vez tengo que estar editando mi CONVERSOR.BAT para cambiar los nombres del archivo en esa segunda línea (Ej.: brcc32 OtraPrueba.rc OtraPrueba.res) Entonces lo que requería es que mi Archivo BAT haga lo siguiente al doble click: 1.- Detecte los archivos *.rc que existan en el directorio actual que me encuentre. 2.- Que los Cuente, ¿Cuantos encontró? (O en su defecto EJECUTE el brcc32 con los encontrados) 3.- Hacer un FOR hasta la cantidad que Contó. 4.- Dentro del FOR Hacer funcionar: brcc32 para todos los archivos encontrados *.rc a *.res en el actual directorio y reemplazar si existe alguno con el mismo nombre. Me he planteado todo esto para evitarme IR CADA VEZ al directorio de BIN y hacer funcionar el brcc32, por un lado, por otro para evitarme hacer funcionar el brcc32 tecleando desde la ventana de MSDOS PARA CADA ARCHIVO "rc", lo ideal sería hacer un dobleclick en una Aplicación y que haga este trabajo para todos los "rc" que se encuentren en el ACTUAL DIRECTORIO. Con un BAT no lo he logrado, además que no me conozco de muchos de sus comandos. ¿Como relaciono todo este proceso con Delphi? Saludos |
Dentro del archivo bat puedes escribir:
Código:
Set path = %path%;C:\Archivos de programa\Borland\Delphi7\Bin El archivo final quedará como Prueba.rc.res si no me equivoco, porque la variable FileRec se sustituye por cada nombre de archivo. Espero que sea viable. Aqui tienes un tutorial de archivos .bat: http://goforit.unk.edu/msdos/msdos19.htm Hacer el equivalente en Delphi, será más largo, a menos que tengas rutinas de apoyo como FindFilesInDir('c:\', '*.res') de las NKLIBS saludos |
Una MUCHO mejor opcion es usar WANT
http://sourceforge.net/projects/want/ Es un programa derivado de ANT, y permite hacer bats mucho mas poderos.. |
Gracias
Gracias por las sugerencias. Acabo de darme cuenta que no tenía activado la opción: de respuesta instantánea por correo, recien que leo los post los probaré ambos y les comento.
Saludos |
Hice algunas correcciones en la 2da y 3ra linea (/y por /p y FileRec x FileRc):
Set path = %path%;C:\Archivos de programa\Borland\Delphi7\Bin del *.res /p FOR %%FileRec IN (*.rc) DO (brcc32 %%FileRec %%FileRec.res) - Pero a pesar de ello Me dá error con el siguiente mensaje: ..."No se esperaba %FileRec en este momento" y no hace ningún trabajo ¿Donde está el error? - Otra consulta ¿por que en la 2da línea (del *.res /p) se le ordena borrar antes? ¿acaso esta linea no debía ser la 3ra? ¿Cual el objetivo? - No entiendo como se maneja el Programa WANT, descargué pero algún Help? Tutorial? para Want. Saludos |
Pues el problema es que la variable solo puede tener una letra, es decir %%e (una sola letra despues de los %%):
Código:
@echo off Decías que sobreescribiese cualquier *.res que hubiera, pues... se borran antes y así no tienes que sobreescribirlos ;) El archivo de salida no hay por qué especificarlo. Saludos |
Justamente!, revisando el tutorial en http://goforit.unk.edu/msdos/msdos19.htm noté que la variable debía llevar una letra, gracias Lepe. Yo lo hice así:
Código:
Set path = %path%;C:\Archivos de programa\Borland\Delphi7\Bin - ¿Alguien sabe como se utiliza el WANT?, estoy con la curiosidad. |
Cita:
del = Delete * = Comodín (cualquier nombre de archivo) Saludos |
Upsss, perdón no leí bien la primera vez.
Cita:
|
La franja horaria es GMT +2. Ahora son las 23:25:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi