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