Como prodria hacer esto en batch??

Iniciado por *LaPerla, 3 Marzo 2010, 13:52 PM

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

*LaPerla

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!

fary

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!
Un byte a la izquierda.

flony

#2

@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
si un problema no tiene solucion entonces no es un problema...es algo inevitable

---saster---

#3
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

flony

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
si un problema no tiene solucion entonces no es un problema...es algo inevitable

---saster---

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   ¬¬


xassiz_

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



YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

flony

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
si un problema no tiene solucion entonces no es un problema...es algo inevitable

---saster---

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...

flony

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
si un problema no tiene solucion entonces no es un problema...es algo inevitable