|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Батник на выключение с автоотменой в заданный промежуток времени |
|
CMD/BAT - [решено] Батник на выключение с автоотменой в заданный промежуток времени
|
Новый участник Сообщения: 8 |
Профиль | Отправить 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
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Anonymоus, спасибо огромное, работает)) Понравилось "Работай, негр, солнце ещё высоко!"))) Ещё друг на Delphi написал, если кому понадобится обращайтесь!
|
Отправлено: 17:35, 16-05-2012 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|