En ocasiones necesitamos insertar una pausa de algunos segundos en nuestros archivos batch. Para ello disponemos de un comando estándar en windows 7 y windows 8. Para windows XP y Vista usaremos otra orden.
Windows 7 y 8.
Para windows 7 y 8 disponemos del comando estándar timeout con esta sintaxis:
timeout /t <tiempo_en_segundos> [/nobreak]
El parámetro nobreak se usa para ignorar las pulsaciones de teclas del usuario.
Un ejemplo. Cuando se arranca un equipo con windows 7 se necesita crear una unidad de red a una carpeta compartida por un servidor. Para ello se crea un fichero red.cmd que será ejecutado al inicio del sistema para este cometido.
@echo off echo Esperando para conectar con el servidor de recursos compartidos... timeout /t 30 /nobreak net use s: /delete net use s: \\srvusers\contabilidad /USER:SRVUSERS\auxconta1 Conta$12
Windows XP y Vista.
Para XP y Vista no disponemos del comando timeout. En su lugar podemos usar el comando ping con una dirección de bucle invertido que tiene un retraso aproximado de un segundo entre cada ping. Esta sería la sintaxis para este comando:
ping -n <numero_de_pings> 127.0.0.1
El paramentro -n especifica el número de pings a realizar. Se deseamos una demora de unos 15 segundos, pondremos 15 en el parámetro -n.
Un ejemplo. Cuando arranca un equipo con windows xp debe ejecutarse un programa después de que la red de xp se haya inicializado. La red tarda aproximadamente unos 15 segundos en inicializarse. Ejecutaremos dicho programa transcurridos unos 20 segundos ejecutando el archivo wifiguard.bat al iniciar el sistema.
@echo off ping -n 20 127.0.0.1 > nul start "C:\Archivos de programa\Wifi Guard\WifiGuard.exe"