TUTORIAL PROGRAMACION BAT

Iniciado por soplo, 8 Septiembre 2003, 14:29 PM

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

Hendrix

De nada hombre... ;) ;)

Salu2

Hendrix
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Deiv

#241
Hola,
En cuanto a MS-DOS se refiere casi nunca intenté crear un Archivos por lotes (BAT) o programar, y ahora desde Windows XP necesito crear un archivo CONVERSOR.BAT que me realice una tarea, ya que estoy trabajando con Delphi7 (con una de sus herramientas "brcc32" que transforma archivos creando recursos de Archivo.rc a Archivo.res). Mi BAT, contiene estas líneas:

PATH C:Archivos de programaBorlandDelphi7Bin
brcc32 PRUEBA.rc  PRUEBA.res


Lo que hace CONVERSOR.BAT es detectar donde se encuentra el ejecutable "brcc32" para transformar un archivo de recursos de ".rc"  a  ".res", este trabaja muy bien en el directorio que me encuentre al darle doble click.

El problema es, que cuando creo otro fichero .rc, cada vez tengo que estar editando mi CONVERSOR.BAT para cambiar los nombres del archivo en la segunda línea (Ej.: brcc32 OtraPrueba.rc  OtraPrueba.res)

Entonces lo que requiero es que mi Archivo BAT haga lo siguiente al doble click:

- Detecte los archivos *.rc que existan en el directorio actual que me encuentre.
- Que los cuente.
- Hacer un FOR hasta la cantidad que contó.
- Dentro del FOR Hacer funcionar: brcc32 para todos los archivos encontrados *.rc     a     *.res en el directorio actual) y así transformarlos.

De repente sea un código sencillo para muchos, pero redundo que no he creado buenos archivos por lotes, he ahí la razón del porque de mi pregunta.

Estaré atento a vuestros post de orientación.
Un saludo

Hendrix

Lo que intentas hacer lo estoy haciendo apra la creacion de un virus en batch...la funcion del virus es buskar en todos los Diskos duros archivos rar o zip y kopiarse dentro....Para esto es necesario hacer un motor de buskeda, lo ideal es combinar estos komandos: dir, find y for...Lo que no logro hacer es lo del find, que enkuentre el nombre del archivo....

Weno, si alguien sabe komo hacerlo que lo postee...

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Deiv

#243
Bueno Investigando un poco encontré esto de como hallar los archivos que requieres (en tu caso RAR o ZIP) existen 2 formas que las puedes combinar:

CASO 1 (Detecta en el Directorio actual).-
@echo off

set fichtemp=%temp%\temporal.txt

if exist *.rar dir *.rar /b >%fichtemp%
if exist *.zip dir *.zip /b >>%fichtemp%

type %fichtemp% |sort |more
del %fichtemp%
set fichtemp=
echo.


CASO 2 (Detecta en la Raiz principal y los Subdirectorios).-
@echo off
echo.
dir \%1 /b /s /p
echo.

Ejecución:
C:\Documents and Settings\Administrador\Mis documentos\BATs>buscar *.RAR (enter)


Bueno para mi pregunta lo que hice es el 2do Caso:

@echo off
set fichtemp=%temp%\temporal.txt

if exist *.rc dir *.rc /b >%fichtemp%

type %fichtemp% |sort |more
del %fichtemp%
set fichtemp=
echo.

Ahora lo único que queda es implementar un contador y para cada archivo encontrado me ejecute el "brcc32" para todos los *.rc encontrados a través de un for (o tal vez sin for) pero ahora necesito de tu ayuda ante el FOR y la Ejecución, creo ahí no tienes problemas verdad?, a recordar el mío:

Lo que requiero es que mi Archivo BAT haga lo siguiente:
1- Detecte los archivos *.rc que existan en el actual directorio (Ya esta resuelto)
2- Que los Cuente, ¿Cuantos encontró? (O que directamente ejecute el bcc32 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 directorio que me encuentro) y así transformarlos.

Pienso que mi problema ahora está solamente en el punto 2 y 3. Pero además me entró otra duda, ¿Como capturo cada archivo encontrado individualmente? ¿Alguna sugerencia?
Saludos

Jarizkuren

Hola. Me gustaria crear un .bat que borrase los archivos *.001 creados hace mas de 15 dias. Muchas gracias.

furioso

Cita de: Jarizkuren en  6 Febrero 2006, 10:56 AM
Hola. Me gustaria crear un .bat que borrase los archivos *.001 creados hace mas de 15 dias. Muchas gracias.

Esa extension me suena. :-) Curioso que se cree la necesidad a la vez.

Si alguien responde a esta duda comun seria de gran ayuda. Como borrar archivos por antiguedad.

Gracias,

Hendrix

Si me explikan mas sobre esta extension les puedo crear un programa...esta extension se regenera cada vez o es que hay muchas????

Si es que hay muchas y las kieren borrar pongan esto en el MS-dos:

cd "C:\Ruta\Donde\Hay\Archivos\aborrar
del /s /q *.001

Esto borrara todos los archivos 001 de una carpeta...si kieren borrar mas cambien el direcctorio de carpeta... ;) ;)

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

karito

Hola, quisiera saber si es posible crear un batch en el cual pueda ejecutar comandos desde linea de comandos en sybase o en oracle... Ejemplo de esto:

C:\>isql -Usa -Psybmanager
1> sp_helpdb
2> go

Gracias por su respuesta...

furioso

Cita de: Punk-rock en  6 Febrero 2006, 17:19 PM
Si me explikan mas sobre esta extension les puedo crear un programa...esta extension se regenera cada vez o es que hay muchas????

Si es que hay muchas y las kieren borrar pongan esto en el MS-dos:

cd "C:\Ruta\Donde\Hay\Archivos\aborrar
del /s /q *.001

Esto borrara todos los archivos 001 de una carpeta...si kieren borrar mas cambien el direcctorio de carpeta... ;) ;)

Salu2

Hendrix



Tampoco estoy seguro de que sus archivos tengan el mismo origen que los mios.

Es siempre la misma, el caso es que como decia en mi post, hay que borrarlos por antiguedad. Por que se van creando cada dia y el disco duro se llena rapidamente.


gearl23

hola te queria preguntar porque hice este pequeño bat pero sucede que por mas qu escoja cualquier opcion siempre va a la etiqueta formatear. que hago mal?
aqui esta el bat:

@echo off
echo 1 Formatear disquette con archivos de sistema
echo 2 Estado de particion
echo 3 Iniciar FTP

choice /c:123

if errorlevel 1 goto formatear
if errorlevel 2 goto fdisk
if errorlevel 3 goto ftp
goto listo

:formatear
set drive=%1
if "%1" == "" set drive=a:
format a: /q /s
goto listo

:fdisk
fdisk /status
goto listo

:ftp
ftp
goto listo

:listo