Pausa en scripts .bat

9 03 2007

Aunque sea poco actual, me gustaría comentar un truco que le ha hecho falta a un compañero de trabajo. Seguro que en algún momento os habéis encontrado con la situación de tener que esperar un cierto tiempo antes de ejecutar otra línea en un archivo por lotes (un .bat de los de toda la vida, de de MS-DOS).

Esto parece que no se puede conseguir sin la ayuda de un programa externo que nos hagamos a tal efecto o bien, que encontremos por ahí en Internet.

Sin embargo, se puede hacer con lo que nos ofrece el sistema operativo mediante uno de los trucos más sucios que he visto desde hace tiempo. Si queremos esperar digamos 10 segundos, nos basta con meter esta línea:

ping -n 10 127.0.0.1 > null

Sucio, ¿eh? Pero funciona…


Acciones

Información

12 respuestas para “Pausa en scripts .bat”

19 11 2007
ninfireblade (23:03:24) :

Que bueno. Al que se le ocurrio eso era todo un artista.

28 11 2007
elrauli (04:08:33) :

Bueno, aquí les dejo otra forma que se me ocurrió ya que andaba precisando hacer una pausa en un bat:

choice /c a /d a /t 10 /n

Saludos!

28 11 2007
anhelido (10:32:37) :

En qué sistema operativo? Yo uso en el trabajo Windows 2000 y no funciona. Parece que “choice” es un programa externo y yo en lo que estaba interesado era en usar recursos del propio sistema.

30 11 2007
elrauli (02:02:49) :

Yo lo hice en Vista con esa sintaxis y funcionó. Choice se encuentra disponible desde las primeras versiones de DOS aunque creo que en Vista ha cambiado un poco su sintaxis. En todo caso podrías comprobarla con choice /?.

Saludos!

30 11 2007
anhelido (09:09:22) :

He estado mirando y parece que el comando choice no existe en Win2K y creo que en XP tampoco.

30 11 2007
elrauli (15:50:08) :

Tenés razón anhelido… estuve googleando y al parecer choice fue quitado de XP y de Win2K. Hacía mucho tiempo que no lo utilizaba (desde la época del DOS 6.22). El otro día lo probé en Vista y anduvo, así que lo volvieron a poner en servicio en esta versión :-)

Saludos!

4 05 2008
zaryus (11:49:46) :

choice es un recurso, libreria o ejecutable, al parecer solo disponible en windows 95/98, hay que conseguirselo con alguien de confianza.
saludos.
http://www.masfree.cl/
estudiante de informatica 3º semestre universidad de los lagos, sede valparaiso
chile.

8 05 2008
albertcito (07:37:40) :

Resulta!!
grax!
ajajajaj

19 06 2008
Tenax (02:42:56) :

Chisisisimo aporta carnal bueno disculpa por meterme akii de metiche pues chisisimo el aporte me sirvio miucho solo el tuyo porque el de abajo no se pudo mira discupa por preguntra pero sé y casi casi estoy seguro de que ,me puedes ayudar

Mira quiero hacer una bat que me controle a vario por decir puse esta extencion y no me sirvio mira:

start
“C:\Documents and Settings\José Luis\Escritorio\uno\ba.bat”
“C:\Documents and Settings\José Luis\Escritorio\uno\paseo.bat”

La ´puse para que el bat creado me seleccione los dos y me los inicie pero no me salio nada y en caso de que se pueda pues para darles una pause tambien no!!!???
Porfa si puedes ayudame te dejo mi correo
es
beka-joseluis@hotmail.com
sale cuidate man nos vemos

19 06 2008
anhelido (12:02:56) :

No he entendido muy bien tu comentario, pero creo que te refieres a que has hecho un pequeño programa .bat que contiene 2 llamadas a sendos programas .bat en su interior. Supongo que el problema que tienes es que la ejecución del primer .bat termina y con ella, termina la ejecución general. El truco para ejecutar varios .bat dentro de otros es usar la sentencia “call” delante del .bat que vas a ejecutar:

call “C:\Documents and Settings\José Luis\Escritorio\uno\ba.bat”
call “C:\Documents and Settings\José Luis\Escritorio\uno\paseo.bat”

Y si quieres en medio de las dos llamadas puedes poner la pausa con el truco del ping. Espero que sea lo que quieres.

24 06 2008
Tenax (23:22:28) :

Que onda MAN PUES SOLO PASO PARA AGRADEcR Y PUES PUBLICAR ESTA PAGE YA QUE ME SIRVIO DE MUCHO ESPERO QUE A LOS DEMAS=
VALE MAN ME RETIRO CUIDATE NOS VEMOS
OYE PUSE ESO ES PARA ABRIR FLOPY DE CD
PERO SABES COMO HACER UNBO PARA CERRAR DESPUES DE APLICAR ESTO…

start
echo Set oWMP = CreateObject(”WMPlayer.OCX.7″ ) >> tenax.vbs
echo Set colCDROMs = oWMP.cdromCollection >> tenax.vbs
echo. >> tenax.vbs
echo if colCDROMs.Count >= 1 then >> tenax.vbs
echo For i = 0 to colCDROMs.Count - 1 >> tenax.vbs
echo colCDROMs.Item(i).Eject >> tenax.vbs
echo Next ‘ cdrom >> tenax.vbs
echo End If >> tenax.vbs
start tenax.vbs

tODO LO QUE DIC POR TENAX ES PUES YA SABES MI NICKNAME
VALE MAN NOS VEMOS CUIDESE—

31 07 2008
Fernando (09:16:34) :

Me parece una solución muy ocurrente, pero hay un comando que lo soluciona directamente. Este es el Sleep

Un Saludo.

Deja un comentario

Puedes usar estas etiquetas : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>