![]() |
Сделать действия, если интервал времени
Здравствуйте, есть код, который ждет определенное количество минут (которые определяет по имени файла), после чего удаляет и копирует файлы (действия выделены жирным).
Код:
@echo off После окончания задержки, действия "копировать - удалить - завершить работу скрипта", должны выполняться только в нужный интервал времени... если текущее время не входит в нужный интервал, то стартует все заново.. т.е. опять включается задержка (которая опять определяется по имени того же файла), ну и после окончания задержки опять проверяет интервал времени... Также нужный интервал времени должен быть не фиксированным, а также считываться с имени файлов.. файлы будут без расширений.. их будет два, от скольки часов и до скольки часов. к примеру имена файлов: "ot - 2" "do - 8" это значит, что нужный интервал от 2:00 до 8:00 утра. |
Alexander_88, вот эти игры с параметрами в виде имён файлов мне совсем перестают нравиться. Зачем сие было решено делать именно так, а не как у людей — например, в виде банально-древнего ini-файла или новомодного xml/json-файла?
|
Да если б я знал как это сделать.. ведь по простому для себя делаю)
эти файлы я переименую с помощью других батников, батники запускаются через делфи, кнопками.. как бы такая панель управления :) |
Если делаете что-то на Delphi — зачем Вам вообще пакетные файлы? Пишите уж всё на Delphi.
Цитата:
Скрытый текст
![]() или так: Скрытый текст
![]() |
Alexander_88,
я для подобных целей 100 лет назад написал утилитку before http://forum.oszone.net/post-2277704.html |
Цитата:
Если всё-таки очень хочется, переделал Ваш код
Код:
@Echo Off По умолчанию, если нет файлов "ot - *." и "do - *." батник однократно исполнит прописанные действия. Если текущее время меньше указанного в "ot - *.", батник циклически будет с задержкой опрашивать текущее время до тех пор, пока оно не станет >= в имени файла "ot - *." Если при запуске батника в файле с именем "do - *." указано время менее текущего, ничего не делается, батник завершается |
Спасибо всем за ответы...
Теперь вот так: Код:
@Echo Off время 1:04 батник появляется и исчезает.. даже не выполняет задержку sleep, файлы вроде не копирует, проверил. Продовал также сменить интервал с "ot - 1", "do - 3".. то же самое... может что - то не то делаю? 1 Нужно сначала выполнить задержку sleep, потом пункт 2 2 если текущее время в интервале ot do часов.. то выполнить действия и завершиться.......... если не в текущем интервале, то начать с пункта 1. Цитата:
если от 0 до 3 текущее время например 6... получается текущее время и больше до и меньше от... т.е. под два условия попадает? у меня по идее на примере время меньше "ot - *", значит батник не должен просто завершаться? |
Alexander_88, обратите внимание, имена файлов указываются без путей.
Код:
Set "fName=work limit - *." Естественно что батник при Ваших описаниях не находит файл sleep и завершается. Для отладки можете убрать rem перед echo. При этом полУчите время (часы + 100) из файлов ot, do (если они существуют в указанной папке, иначе будет 0 и 24 (то есть отобразится 100 и 124)), и текущий час (+100). А также время системы. 6 не входит в интервал от 0 до 3, батник завершится. Для 1.04 батник должен отработать (при правильном описании файлов) Уточнение: Строку If %tNow% GTR %tEnd% Exit /B 0 необходимо исправить для более правильного попадания текущего времени в заданный интервал Код:
If %tNow% GEQ %tEnd% Exit /B 0 |
Время: 22:42. |
Время: 22:42.
© OSzone.net 2001-