Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запускать программу по времени

Ответить
Настройки темы
CMD/BAT - [решено] Запускать программу по времени

Пользователь


Сообщения: 87
Благодарности: 4

Профиль | Отправить PM | Цитировать


Здравствуйте, подскажите как лучше всего решается следующая задача:
1) Запускаем .bat
2) Проверяем время
3) Если время между 09 - 15 часами идём goto Work else goto Loop
Заранее спасибо за помощь.

Отправлено: 19:40, 04-03-2019

 

Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Patroklos, Не знаю, что Вы имеете ввиду под Work и Loop, вот вариант
Код: Выделить весь код
@Echo Off
cls
	Set "Time1=09:00"
	Set "Time2=22:00"
	Set "Delim=:"

	Call :TCount "%%Time1:%Delim%=%%00" "T1"
	Call :TCount "%%Time2:%Delim%=%%00" "T2"

	Set "T=%Time:~0,-3%"
	Call :TCount "%%T:%Delim%=%%" "T"

	If %T% LSS %T1% Call :Loop &GoTo :Eof
	If %T% GTR %T2% Call :Loop &GoTo :Eof

	If %T1% LEQ %T% If %T% LEQ %T2% Call :Work
Exit /B 0

:TCount
SetLocal
	Set "T=%~1"
	Set "T=00%T: =%"
EndLocal &Set /A %~2=1%T:~-6%
Exit /B 0

:Loop
	Echo Loop %T1:~1% %T:~1% %T2:~1%
	Pause
GoTo :Eof

:Work
	Echo Work %T1:~1% %T:~1% %T2:~1%
	Pause
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 04-03-2019 в 21:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:16, 04-03-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=:" %%i in (`time /t`) do set "sHours=%%i"
if defined sHours if "%sHours%" geq "09" if "%sHours%" lss "15" (
	echo goto :Work
)
echo goto :Loop

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:18, 04-03-2019 | #3


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Patroklos, А время 15:59 принадлежит интервалу между 09 и 15 или нет?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 21:29, 04-03-2019 | #4


Пользователь


Сообщения: 87
Благодарности: 4

Профиль | Отправить PM | Цитировать


Цитата megaloman:
А время 15:59 принадлежит интервалу между 09 и 15 или нет? »
Мне поминутная точность не важна. Спасибо.

Отправлено: 21:44, 04-03-2019 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запускать программу по времени

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Не запускать программу пока не будет найден файл ufooo Скриптовые языки администрирования Windows 8 13-05-2015 00:51
Доступ - [решено] Как автоматически запускать программу с правами админа? i-Lex Microsoft Windows 7 3 08-01-2015 16:47
Запускать программу на сервере при входе пользователя в AD zaqwsx_ Microsoft Windows NT/2000/2003 7 27-10-2009 21:18
[решено] Как запускать программу с помощью "выполнить" (win+r), не указывая ее путь? chek Microsoft Windows 2000/XP 8 13-02-2008 22:07
ПДД (ГАИ) 2006, как можно запускать программу с винчестера а не с CD? ab Программное обеспечение Windows 14 01-06-2006 19:56




 
Переход