Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: *LaPerla en 3 Marzo 2010, 13:52 PM

Título: Como prodria hacer esto en batch??
Publicado por: *LaPerla en 3 Marzo 2010, 13:52 PM
hola amigos.
soy nuevo por aqui y me gustaria que me acharais una mano.
necesito hacer un batch que al abrirse.

ejecute 4 programas en este orden yt hacer posible que se demore 15 segundo entre aplicacion.

WampServer
DynDns
Batch 1
Batch 2

no se de donde sacar informacionpara hacer esto y la verdad n ose si se podra hacer.
gracias de antemano!
saludo!
Título: Re: Como prodria hacer esto en batch??
Publicado por: fary en 3 Marzo 2010, 14:58 PM
muy facil lo puedes acer mezclando batch con vbscript.. con codigo batch usar start para iniciar la aplicacion y con el sleep del vbscript esperas los segundos que quieras...


salu2!
Título: Re: Como prodria hacer esto en batch??
Publicado por: flony en 3 Marzo 2010, 15:09 PM

@echo off

start programa1.exe
ping -n 15 127.0.0.1

start programa2.exe
ping -n 15 127.0.0.1

cd C:\...
start bat1
ping -n 15 127.0.0.1

cd C:\...
start bat2
ping -n 15 127.0.0.1


primitivo pero siempre me funciono en donde dice programa pone el nombre con el exe y en bat el nombre que le pusiste...lo de cd C:\...antes del start es para q se ubique bien la maquina...dicen q no hace falta...pero es mejor asi
Título: Re: Como prodria hacer esto en batch??
Publicado por: ---saster--- en 3 Marzo 2010, 15:48 PM
con for en una linea

Código (dos) [Seleccionar]
@for %%a in (programa1,programa2,programa3,programa4) do (start "" "%%a"&ping localhost -n 15 >nul 2>&1)

el ping no es exacto asi que si quieres sacar el tiempo lo puedes hacer de la variable time y hacer un bucle
Título: Re: Como prodria hacer esto en batch??
Publicado por: flony en 25 Marzo 2010, 12:52 PM
si el ping no es exacto porque lo usas en tu for?....segundo lo de tomar l time y hacer un bucle en bat toma mas tiempo que perder unas milesimas de segundo q puede tener de diferencia un ping
Título: Re: Como prodria hacer esto en batch??
Publicado por: ---saster--- en 25 Marzo 2010, 15:43 PM
bueno el ping no es exacto pero es lo mas sencillo de utilizar, dije lo del time porque a lo mejor quería 15 seg exactos y no aproximadamente

puede ser algo asi el bucle

Código (dos) [Seleccionar]
@echo off
:menu
(set var,b,seg,seg2=)
cls
echo Principio:
set /p seg=
if not defined seg (goto menu)
if %seg% LEQ 0 (goto menu)
echo Final:
set /p seg2=
if not defined seg2 (goto menu)
if %seg2% LEQ %seg% (goto menu)
cls
:a
set var=%time:~6,2%
set b=%var%
:b
set var=%time:~6,2%
if %var%==%b% (goto b) else (
set /a "seg+=1"
echo %seg%
if %seg%==%seg2% (pause>nul&goto menu) else (goto a)
)


se puede mejorar, pero funciona   ¬¬

Título: Re: Como prodria hacer esto en batch??
Publicado por: xassiz_ en 25 Marzo 2010, 17:02 PM
Cita de: flony en 25 Marzo 2010, 12:52 PM
si el ping no es exacto porque lo usas en tu for?....segundo lo de tomar l time y hacer un bucle en bat toma mas tiempo que perder unas milesimas de segundo q puede tener de diferencia un ping
El ping no es exacto por que ahi le indicas un numero de paquetes a enviar, no un numero de segundos.

PD: este tema va en Scripting
Título: Re: Como prodria hacer esto en batch??
Publicado por: flony en 26 Marzo 2010, 12:14 PM
la semtaxis es ping -n 15 127.0.0.1
ping comando
-n 15 le doy quince intentos de aprox 1 segundo cada uno
y la direccion 127.0.0.1 es la localhost
Citarhttp://es.wikipedia.org/wiki/Localhost
lo vas a encontrar en la carpeta....me canse de buscarla pero esta en C:\windows....busca es un archivo tonto y sirve para
Citarhttp://es.wikipedia.org/wiki/Localhost
Título: Re: Como prodria hacer esto en batch??
Publicado por: ---saster--- en 26 Marzo 2010, 16:55 PM
el ping sería mas sencillo pero no es exacto


lo que el quiere se puede hacer perfectamente en una linea con un ping y no tener que liarte en extraccion de caracteres y bucles (el ejemplo que puse)

@for %%a in (programa1,programa2,programa3,programa4) do (start "" "%%a"&ping localhost -n 15 >nul 2>&1)

con esto haces ping 15 veces que duran casi 15 seg, pero no son exactos... unas veces son 13, 15, 14, 14,5...
Título: Re: Como prodria hacer esto en batch??
Publicado por: flony en 27 Marzo 2010, 21:42 PM
a ver en mi bat no hago extraccion de caracteres bucles menos...eso lo propuso saster...y el mio es muy linial y simple..a ver para tareas tontas bat tontos como el mio son mejor ahorran tiempo y recursos...el problemita del for es q puede entender que haga dos cosas o q si uno de los ejecutables no los puede localizar me pasa cuando tenes mas de una unidad y debes tener q poner cd D:\ para q no se pierda....el for se puede perder...no por poner todo en una linea es un buen bat...un bat es bueno cuando hace lo q queres...es mas podria haber puesto tambien if exict para ver si estan esos programas...pero se da por entendido que es su pc y sabe lo q tiene y donde...a no ser q me salgan con el clasico for de leo @echo off
rem Leo Gutierrez R.
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
dir /b %%i:\ > nul 2>&1 && (
for /f "tokens=*" %%_ in ('dir /b /s %%i:archivoloco.txt') do (
[color=red]aca iria la accion[/color]"%%_"
)
)
)
exit /b 0

para buscarlo en toda la pc...o sea en definitiva
1) sabe q exicten los programasy localizacion
2) tienen un orden especifico de inicio
3) y queremos q funcione
Título: Re: Como prodria hacer esto en batch??
Publicado por: ---saster--- en 28 Marzo 2010, 12:35 PM
esta claro que no por poner un bat en una linea es mejor, pero si habiendo dos bat que hagan lo mismo cuanto mas compacto sea es mejor