Espere a que un comando finalice la ejecución en el Batch archivo de Windows
-
Use
/WAIT
para esperar a que un comando finalice la ejecución -
Use el comando
TIMEOUT
para retrasar la ejecución -
Use el Comando
PAUSE
para Pausar la Ejecución
Hay varios comandos y procesos de instalación en un Batch archivo que, por lo general, tardan un tiempo en completarse. Pero cuando se ejecuta un Batch archivo, no espera a que finalice un proceso de comando; ejecuta todos los comandos línea por línea.
Es importante hacer que esos comandos esperen a que terminen y luego ejecutar los siguientes comandos. Para que un proceso espere hasta que termine, usamos el parámetro /wait
con el comando START
.
En lugar de iniciar un comando, si es necesario insertar retrasos en el Batch archivo durante algún intervalo de tiempo, podemos usar comandos como TIMEOUT
y PAUSE
para detener la ejecución del siguiente proceso durante un breve intervalo de tiempo. o hasta que se presione una tecla.
Este tutorial ilustra diferentes formas de esperar a que finalice un comando o un programa antes de ejecutar el siguiente comando.
Use /WAIT
para esperar a que un comando finalice la ejecución
Cuando iniciamos un programa en un Batch archivo usando el comando START
, podemos esperar hasta que el programa finalice agregando /wait
al comando START
. Incluso si hay varios comandos, se puede utilizar /wait
para que cada proceso finalice y pase al siguiente.
Además, el parámetro /B
se utiliza para permanecer en el mismo proceso sin crear una nueva ventana. El comando START
sin el parámetro /B
abre el programa o comando en una nueva ventana.
Espere a que un comando finalice la ejecución
Por ejemplo, debemos esperar a que un comando termine de ejecutarse antes de ejecutar el siguiente.
@echo off
echo starting first program.
START /B /WAIT cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
Producción:
Espere a que el archivo .exe
termine de ejecutarse
Otro ejemplo es donde necesitamos ejecutar un archivo .exe
y esperar hasta que la ejecución se complete por completo.
@echo off
echo starting first program.
START /B /WAIT JRuler.exe
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
Producción:
Tan pronto como cierre el archivo .exe
, el segundo programa comenzará a ejecutarse. cmd /k
en la última línea se usa para evitar que el símbolo del sistema se cierre después de la ejecución.
Si hay varios programas, puede usar /WAIT
con cada comando para esperar hasta que finalice la ejecución. El comando START
con el parámetro /WAIT
no tiene ningún tiempo de espera, es decir, no importa cuánto tiempo tarde el proceso en finalizar; esperará hasta que se complete el proceso.
@echo off
START /WAIT install1.exe
START /WAIT install2.exe
El /WAIT
solo se puede utilizar con el comando START
. Podemos insertar un tiempo de retardo para otros comandos usando los comandos TIMEOUT
y PAUSE
.
Use el comando TIMEOUT
para retrasar la ejecución
El comando TIMEOUT
se utiliza para retrasar la ejecución de un comando durante unos segundos o minutos. Solo se puede utilizar en un Batch archivo.
El rango para el comando TIMEOUT
varía entre -1 y 100000. Si el retraso se establece en -1, actuará como un comando de pausa para esperar hasta que se presione una tecla.
Como en el comando anterior, podemos reemplazar /wait
insertando el comando TIMEOUT
con el parámetro /t
. La sintaxis para el comando TIMEOUT
se da a continuación:
TIMEOUT /t <time>
Tomemos el ejemplo anterior y agreguemos un retraso de 30 segundos después de la ejecución del primer programa. El código para el mismo se muestra a continuación.
@echo off
echo starting first program.
START /B JRuler.exe
TIMEOUT /t 30
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
Producción:
Después de 30 segundos, el segundo programa comenzará a ejecutarse. Además, si un usuario presiona una tecla antes del tiempo de espera, el segundo programa comenzará a ejecutarse.
Para evitar las pulsaciones de teclas del usuario, utilice el parámetro /nobreak
con el comando TIMEOUT
. Esto ignorará cualquier pulsación de tecla por parte del usuario.
Sin embargo, puede detener la demora presionando Ctrl+C, lo que aumentará el nivel de error1.
Use el Comando PAUSE
para Pausar la Ejecución
El comando PAUSE
se utiliza para pausar la ejecución de un Batch archivo hasta que se presione una tecla. Es útil si el usuario quiere leer el texto de salida o esperar hasta que finalice un proceso.
Sin embargo, no hay tiempo de espera y solo continuará hasta que el usuario presione una tecla.
@echo off
echo starting first program.
START /B cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
PAUSE
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k
Producción:
Todos los métodos mencionados anteriormente funcionan bien. Si usa el comando START
, se recomienda usar /wait
en lugar de los comandos de retraso, ya que el proceso puede demorar más de lo especificado.