script pause esperar dont comando close batch bat batch-file timer cmd

batch-file - pause - sleep cmd script



¿Cómo creo un temporizador de archivo por lotes para ejecutar/llamar a otro lote durante el día? (8)

Lo hice escribiendo una pequeña aplicación de C # que simplemente se activa para iniciar tareas periódicas: no sé si es factible desde un archivo por lotes sin descargar extensiones para admitir un comando de suspensión. (Para mis propósitos, el programador de Windows no funcionaba porque las aplicaciones lanzadas no tenían contexto de gráficos disponible).

¿Cómo creo un temporizador de archivo por lotes para ejecutar / llamar a otro lote durante el día? ¿Quizás en determinados momentos para ejecutar pero no para fines de semana? Debe ejecutarse en los tiempos del sistema también puede ser .cmd para ejecutar en xp server 2003


Usaría el programador (panel de control) en lugar de una línea de cmd u otra aplicación.

Panel de control -> Tareas programadas


El comando AT lo haría, pero para eso es la GUI de Tareas programadas. Ingrese "help at" en una ventana de cmd para más detalles.


A continuación se muestra un archivo por lotes que esperará durante 1 minuto, verificará el día y luego realizará una acción. Utiliza PING.EXE, pero no requiere archivos que no estén incluidos con Windows.

@ECHO OFF :LOOP ECHO Waiting for 1 minute... PING -n 60 127.0.0.1>nul IF %DATE:~0,3%==Mon CALL SomeOtherFile.cmd IF %DATE:~0,3%==Tue CALL SomeOtherFile.cmd IF %DATE:~0,3%==Wed CALL SomeOtherFile.cmd IF %DATE:~0,3%==Thu CALL WootSomeOtherFile.cmd IF %DATE:~0,3%==Fri CALL SomeOtherFile.cmd IF %DATE:~0,3%==Sat ECHO Saturday...nothing to do. IF %DATE:~0,3%==Sun ECHO Sunday...nothing to do. GOTO LOOP

Podría mejorarse de muchas maneras, pero podría ayudarlo a comenzar.


Para la parte del temporizador de su script, lo recomiendo encarecidamente:

echo. echo Waiting For One Hour... TIMEOUT /T 3600 /NOBREAK echo. echo (Put some Other Processes Here) echo. pause >nul

Esta secuencia de comandos espera 1 hora (3600 segundos) y luego continúa con la secuencia de comandos y el usuario no puede presionar ningún botón para omitir el temporizador (además de CTRL + C).

Puedes usar

Timeout /t 3600 /nobreak >nul

Si no quieres ver una cuenta regresiva en la pantalla.


También puedes hacer esto>

@echo off :loop set a=60 set /a a-1 if a GTR 1 ( echo %a% minutes remaining... timeout /t 60 /nobreak >nul goto a ) else if a LSS 1 goto finished :finished ::code ::code ::code pause>nul

O algo así.


@echo off :Start title timer color EC echo Type in an amount of time (Seconds) set /p time= color CE :loop cls ping localhost -n 2 >nul set /a time=%time%-1 echo %time% if %time% EQU 0 goto Timesup goto loop :Timesup title Time Is Up! ping localhost -n 2 >nul ping localhost -n 2 >nul cls echo The Time is up! pause cls echo Thank you for using this software. pause goto Web goto Exit :Web rem type ur command here :Exit Exit goto Exit


@echo off :Start # seting a ponter title timer #name the cmd window to "Timer" echo Type in an amount of time (Seconds) set /p A= #wating for input from user set B=1 cls :loop ping localhost -n 2 >nul #pinging your self for 1 second set /A A=A-B #sets the value A - 1 echo %A% # printing A if %A% EQU 0 goto Timesup #if A = 0 go to ponter Timesup eles loop it goto loop :Timesup #ponter Timesup cls #clear the screen MSG * /v "time Is Up!" #makes a pop up saying "time Is Up!" goto Exit #go to exit :Exit