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…
Pulsa aquí para RSS
Que bueno. Al que se le ocurrio eso era todo un artista.
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!
gracias elrauli por el codigo (choice /c a /d a /t 10 /n) no sabes los problemas q me has solucionado ^^
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.
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!
He estado mirando y parece que el comando choice no existe en Win2K y creo que en XP tampoco.
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!
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.
Resulta!!
grax!
ajajajaj
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
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.
a eso le llamo precisión en las respuestas! muy buena ayuda para otros también… muchas gracias.
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—
Me parece una solución muy ocurrente, pero hay un comando que lo soluciona directamente. Este es el Sleep
Un Saludo.
Oh por Dios! qué ignorancia la nuestra…
(todo se debe a la pereza que da el tener que leer todo el manual de D.O.S.)
Es absolutamente cierto. Llevaba años con esa duda rondándome, pero nunca me había puesto a buscarlo seria y concretamente; muchas gracias, realmente es la solución mas apropiada.
necesito saber como hacer scripts,, editarlos en el notepad y ejecutarlos en el cmd,,o una lista de comandos k pueda hacelo,,,porfavorrr…
Tambien se puede usar el comando Pause … que espera al evento tecla para avanzar dentro del .bat. En pantalla pone: “Pulse cualquier tecla para continuar …”
gracias me ayudo jeje
aunque es “nul” no “null” como lo tienes puesto
saludos
oigan amigos ya que veo que uds son unos duros para esto del batch me podrian ayudar, es un mini proyecto para el cole, es de lo mas simple =D una calculadora, todo va bien a excepcion de la opcion 5, no se como usar el comando choice, he mirado en varias webs y lo he probado de distintas formas pero no me da, la opcion 5 quiero que me de un mensaje de si desea salir o no y uno pueda decidir tecleando la “s” o la “n” ps si alguien me puede ayudar, ahi les dejo las lineas completas:
@echo off
rimero
:Menu
cls
color 2b
echo Seleccione su opcion tecleando el numero respectivo.
echo.
echo 1. Suma
echo 2. Resta
echo 3. Multiplicacion
echo 4. Division
echo 5. Salir
set /p var=
if %var%==1 goto
if %var%==2 goto :Segundo
if %var%==3 goto :Tercero
if %var%==4 goto :Cuarto
if %var%==5 goto :Quinto
if %var% GTR 6 echo Error
goto :Menu
cls
color a
Echo Digite las dos cifras a sumar
set /p Cifra1=
set /p Cifra2=
set /a suma= %Cifra1% + %Cifra2%
cls
echo Sumar %Cifra1% y %cifra2% es igual a %suma%
echo ——————————————
Echo Presione una tecla para volver al menu
Pause>Nul
goto :Menu
:Segundo
cls
color 1a
Echo Digite las dos cifras a restar
set /p Cifra1=
set /p Cifra2=
set /a resta= %Cifra1% – %Cifra2%
cls
echo Restar %Cifra1% y %Cifra2% es igual a %resta%
Echo ———————————————
Echo Presione una tecla para volver al menu
Pause>Nul
goto :Menu
:Tercero
@echo
cls
color 2a
Echo Digite las dos cifras a multiplicar
set /p Cifra1=
set /p Cifra2=
set /a multiplicacion= %Cifra1%*%Cifra2%
cls
echo Multiplicar %Cifra1% y %Cifra2% es igual a %multiplicacion%
Echo ———————————————————–
Echo Presione una tecla para volver al menu
Pause>Nul
goto :Menu
:Cuarto
cls
color 3a
Echo Digite las dos cifras a dividir
set /P Cifra1=
set /p Cifra2=
set /a division= %Cifra1% / %Cifra2%
echo Dividir %Cifra1% y %Cifra2% es igual a %division%
Echo ————————————————-
Echo Presione una tecla para volver al menu
Pause>Nul
goto :Menu
:Quinto
cls
color 4a
choice /c /n sn /m “presione s para salir y n para volver al menu.”
Pause>Nul
if errorlevel 1 goto:exit
if errorlevel 2 goto:menu
de antemano gracias a quien me pueda colaborar en esta bobada =)
perdon, las caritas son igual a
ahhh si algo mi mail es darkness_lord14@hotmail.com
gracias
Como explicaron mas arriba, el ‘choice’ es un ejecutable que no está presente en todos los sistemas operativos de Microsoft. Por ejemplo, yo, en XP pro, no lo tengo; por tanto siempre da un error al tratar de usarlo.