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

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

Ответить
Настройки темы
CMD/BAT - [решено] Батник на выключение с автоотменой в заданный промежуток времени

Новый участник


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

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


Здравствуйте, подскажите пожалуйста. Нужен батник на выключение, но с возможностью отмены в заданный промежуток времени, не пользователем, а автоматически. Для чего это нужно - на моей машине стоит Acronis Backup & Recovery, который делает backup 4-х компов ночью по сети. После выполнения задания резервного копирования прописана команда на выключение компов C:\WINDOWS\system32\shutdown.exe /s /f /t 300(Но она просто вырубает машинки через пять минут). Так вот необходим батник, который перед выполнением команды shutdown, проверяет системное время, и если это время,например,находится в диапазоне (09.00 - 19.00 - рабочее время), то команда shutdown не выполняется, а если системное время в не этого диапазона , то выполняется.Заранее спасибо.

Отправлено: 12:43, 15-05-2012

 

Старожил


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

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


Cashmar, вот вам батник:
Код: Выделить весь код
@Echo Off
:: Начало рабочего времени
Set WTimeBegin=09:00:00
:: Конец рабочего времени
Set WTimeEnd=19:00:00


:: Сериализуем время для более удобного сравнения
Call :ParseTimestamp %WTimeBegin%&Call :SerializeTime
Set MinTime=%ErrorLevel%
Call :ParseTimestamp %WTimeEnd%&Call :SerializeTime
Set MaxTime=%ErrorLevel%
:: Проверяем, всё ли в порядке с рабочим временем, не перепутаны ли значения
If %MinTime% GEQ %MaxTime% Echo Промежуток времени задан неверно&Pause&Exit
:: Получаем текущее время
Call :ParseTimestamp %time:~-0,8%&Call :SerializeTime
Set CurrTime=%ErrorLevel%
:: Проверяем на вхождение в диапазон рабочего, если входит - выходим с сообщением
If %MinTime% LEQ %CurrTime% (
	If %CurrTime% LEQ %MaxTime% Echo Работай, негр, солнце ещё высоко!&Pause&Exit
)
:: Если время за пределами рабочего - выключаем.
Shutdown -s -f -t 1
Exit


:: Вызываемые функции
:ParseTimestamp
For /F "tokens=1,2,3 delims=:" %%A In ("%1") Do (Set HH=%%A&Set MM=%%B&Set SS=%%C)
Exit /B

:SerializeTime
Call :Cut %HH% HH&Call :Cut %MM% MM&Call :Cut %SS% SS
Set /A STime=(HH*60*60)+(MM*60)+SS
Exit /B %STime%

:Cut
Set i=%1
If "%i:~,1%"=="0" Set %2=%i:~1%
If "%i:~,1%"==" " Set %2=%i:~1%
Exit /B
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:50, 16-05-2012 | #2



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

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


Новый участник


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

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


Anonymоus, спасибо огромное, работает)) Понравилось "Работай, негр, солнце ещё высоко!"))) Ещё друг на Delphi написал, если кому понадобится обращайтесь!

Отправлено: 17:35, 16-05-2012 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Батник на выключение компьютеров по сети. Hrust2010 Скриптовые языки администрирования Windows 38 13-10-2016 14:18
[решено] скрипт для нажатия клавиши F2 через опр. промежуток времени Bushbasher AutoIt 2 13-01-2010 12:53
Помогите отключить интернет на короткий промежуток времени! minutka15 AutoIt 6 07-09-2009 10:52
[решено] Повторение кода через промежуток времени sashadeg AutoIt 11 06-05-2009 20:18
Выключение компьютера по времени dj next Microsoft Windows NT/2000/2003 10 15-10-2006 23:25




 
Переход