Как создать таймер пакетного файла для выполнения / вызова другого пакета в течение дня - PullRequest
14 голосов
/ 18 ноября 2008

Как мне создать таймер пакетного файла для выполнения / вызова другого пакета в течение дня? Может быть, в заданное время, но не в выходные? Должен работать в системное время. Может также быть .cmd для запуска на XP Server 2003

Ответы [ 8 ]

32 голосов
/ 03 декабря 2010

Для таймера части вашего скрипта я настоятельно рекомендую использовать:

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

Этот сценарий ждет 1 час (3600 секунд), а затем продолжает работу со сценарием, и пользователь не может нажимать какие-либо кнопки для обхода таймера (кроме CTRL + C).

Вы можете использовать

Timeout /t 3600 /nobreak >nul

Если вы не хотите видеть обратный отсчет на экране.

11 голосов
/ 18 ноября 2008

Я бы использовал планировщик (панель управления), а не строку cmd или другое приложение.

Панель управления -> Запланированные задания

4 голосов
/ 29 января 2009

Ниже приведен пакетный файл, который будет ждать 1 минуту, проверять день и затем выполнять действие. Он использует PING.EXE, но не требует файлов, которые не включены в 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

Это может быть улучшено многими способами, но это может помочь вам начать.

3 голосов
/ 19 ноября 2008

Команда AT сделает это, но для этого предназначен графический интерфейс задач по расписанию. Для получения подробной информации введите «help at» в окне cmd.

1 голос
/ 29 января 2016
@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 
1 голос
/ 19 апреля 2014
@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
1 голос
/ 18 ноября 2008

Я сделал это, написав небольшое приложение на C #, которое просто просыпается для запуска периодических задач - не знаю, выполнимо ли это из командного файла без загрузки расширений для поддержки команды сна. (Для моих целей планировщик Windows не работал, потому что у запущенных приложений не было графического контекста.)

0 голосов
/ 30 ноября 2013

Вы также можете сделать это>

@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

Или что-то в этом роде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...