Ola amigos soy nuevo en el foro :) estuve leyendo los tutoriales y me surgio una duda ¿como hago para pausar mi batch por un tiempo fijo determinado? estuve viendo que se usa un truco con ping pero no me convencio, y estuve buscando y encontre un aplicacion timeout que ya viene con windows y te permite hacer la pausa asi
timeout 10 /nobreak
donde 10 son los segundos.
que opinan de este metodo lo podre usar sin problemas?
timeout no parece un comando interno o sea que venga con windows....otra forma pero mas complicadita seria
****usar el comando time
****usar extraccion de caracteres y que sean variables
****sumar el tiempo que quieras
pero bue es la primera vez que escucho del timeout
echo wscript.sleep 10000 > %temp%\pause.vbs
start /wait %temp%\pause.vbs
Saludos
Gracias por las ideas, flony lo de timeout lo tengo en mi windows 7 pero ya le encontre un problema, no se como hacer para que espere en milisegudos (osea menos de un segundo) :¬¬ lo de el vbs seria una solucion muy practica pero no me termina de convencer deberia de haber una solucion mas sencilla :rolleyes: aunque solucionara lo de los milisegundos.
voy a probar hacer algo con el comando time ;)
Por si estan interesados les dejo la ayuda del timeout
TIMEOUT [/T] tiempo_espera [/NOBREAK]
Descripción:
Esta utilidad acepta un parámetro de tiempo de espera para esperar el
un período de tiempo determinado (en segundos) o hasta que se presiona
alguna tecla. También acepta un parámetro para omitir la presión de tecla.
Lista de parámetros:
/T tiempo_espera Especifica el número de segundos que hay
que esperar.
El intervalo válido es de -1 a 99999 segundos.
/NOBREAK Omite las presiones de tecla y espera el tiempo
especificado.
/? Muestra este mensaje de ayuda.
NOTA: un valor de tiempo de espera -1 significa esperar indefinidamente
una presión de teclado.
Ejemplos:
TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1
Gracias por las ideas otra vez
Buenas, milisegundos nose....pero aunque para apuros hazte un ping ati mismo :laugh:
ping -n 10 127.0.0.1 > null
Donde 10 son los segundos.
Saludos
a ver Aiouek el tema del ping...es una aproximacion a un segundo eso depende de otros factores no es exacto y no volvi a responder porque creo que a milisegundo no llegamos con bat...pero bue si haces un cronometro se entiende...ahora para hacer una pausa dejando que algo mas se ejecute o para volver a iniciar una accion no creo relevante hacer con milisegundos con una aproximacion a segundo alcanza y sobra
http://foro.elhacker.net/scripting/libreria_de_funciones_y_scripts_batch_actualizado_260507-t163184.0.html;msg1031748#msg1031748
Timeout viene por defecto en Windows 7, por lo que acabo de ver.
Un saludo.
Prueba con Sleep de VBS como te indico Novlucker.
salu2!
Te recomiendo yo también el Sleep en un VBS, creado desde tu script.
PD: Gracias por enseñarnos lo de timeout, y yo creo que si te mola timeout deberias usarlo, eso si, solo sirve en W7 ;)
Puedes usar el comando sleep.
Sleep Segundos
ej. sleep 5
Aca posteé un comando para reemplazar al ping y al sleep, se llama espera xD
http://foro.portalhacker.net/index.php/topic,117058.0.html (http://foro.portalhacker.net/index.php/topic,117058.0.html)
@echo off
setlocal
if x%1x==xx (goto :ayuda)
set tiempo=%1
call:verif >nul 2>&1
goto:veriff
:verif
set /a ver=0x%tiempo%
goto:eof
:veriff
if %errorlevel% neq 0 (goto :ayuda)
set /a tiempoo=%tiempo%+1
call:code %tiempo% >nul 2>&1
endlocal
goto:eof
:code
set /a tiempoterm=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%+%tiempo%
set /a hs=%tiempoterm%/86399
set d=%date:~0,2%
:ini
set /a tiempoact=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
if %d% neq %date:~0,2% (
set /a tiempoterm=%hs%*-86399+%tiempoterm%
set d=%date:~0,2%
if %hs% leq 0 (set /a hs=%hs%-1))
if %tiempoterm% geq %tiempoact% (goto :ini)
goto:eof
:ayuda
echo Espera. Inserta una pausa de n segundos
echo Creado por maxx93
echo.
echo Sintaxis:
echo Espera Segundos
echo.
echo Ej.: Espera 777
goto:eof
Guardalo como espera.bat en %windir%. Luego lo podes usar como cualquier comando =)
Salu2.
Cita de: maxx93 en 13 Septiembre 2010, 23:43 PM
Guardalo como espera.bat en %windir%. Luego lo podes usar como cualquier comando =)
Querrás decir en system32 :rolleyes:
Se puede guardar en la carpeta de Windows que funcionará igualmente.
Cita de: aaronduran2 en 14 Septiembre 2010, 00:33 AM
Se puede guardar en la carpeta de Windows que funcionará igualmente.
Eso depende como tengas configurado el PATH
En la mayoria de los pc funciona en %windir% si alli no te funciona guardalo en %windir%\system32 :)
Salu2.