pausas sin que el user intervenga

este lo encontra en la red espero sea de utilidad.

pd: ya me lo sabia pero no queria escribir XD.


Hola chicos, voy a tratar de explicar a los novatillos como se puede sustituir un pause para no tener que pulsar la pesada tecla cada vez que queramos una paradiiiittaaa aa.

Ya sabemos todos que cuando usamos el comando pause nuestro programa se detiene a la espera de que pulsemos una tecla y asi continuara de nuevo.
Pero a veces nos interesa que el programa haga una pequeña parada controlada sin necesidad de tener que volver a pulsar una tecla. Esto se puede lograr de dos formas:

Mediante el uso de ping y haciendo un bucle temporal.


USO DE PING

Sabemos que el comando ping se retarda 3 segundos cada vez que lo ejecutamos en un programa. Por tanto con la siguiente formula sabremos el numero de pings que debemos hacer para retardar un determinado numero de segundos.
3 segundos = 1 ping
1 segundo = 1 ping /3 ------------ ping -n 2
60 segundos = 60 pings /3 = 20 pings

Podemos ver en la siguiente plantilla 3 tipos de retardo:
ping -n 2 localhost > nul ---------- retarda 1 segundo
ping localhost > nul --------------- retarda 3 segundos
for /L %%letra (0,1,60) do (ping -n 2 localhost > nul) ------------ retarda 1 minuto
for /L %%letra (0,1,20) do (ping localhost > nul) ------------tambien retarda 1 minuto

Como se puede ver se ha utilizado el bucle for para evitar repetir el ping 60 veces.
Redireccionamo s > nul para que no se vea la salida asi el retardo es mas limpio.

En el siguiente programa se ve claramente:

Código:

@echo off
echo ESTA ES LA PRIMERA FRASE
for /L %%a in (1,1,10) do (ping -n 2 localhost > nul&&echo %%a)
echo DESPUES DE 10 SEGUNDOS SALE ESTA FRASE
for /L %%a in (11,1,20) do (ping -n 2 localhost > nul&&echo %%a)
echo DESPUES DE 20 SEGUNDOS SALE ESTA FRASE
pause
exit