Назад | Перейти на главную страницу

Команда ожидания Windows до системного времени

Недавно я сделал пакетный скрипт для резервного копирования. Где-то в середине сценария мне придется подождать некоторое время, чтобы достичь его, а затем возобновить следующую строку сценария. Я запланировал сценарий на 16:00, и после команды ожидания следующая строка должна начаться ровно в 17:30. Я думал об использовании SLEEP команда, но он не уверен, что команды, использованные до команды ожидания, закончатся в определенное время (из-за несовместимых размеров файлов), но уверен, что они будут выполнены к 5:00 или 5:10, и затем он должен выполнить команду ожидания, которая ждет определенных системных часов. Я проверяю, есть ли какая-либо команда, которая ждет или спит, пока указанное время не достигнет системного времени и возобновится после этого. Кто-нибудь сталкивался с этой ситуацией, и как она была решена?

Вы используете два тега: WinXP и Server-2008-R2, поэтому я не уверен, в какой среде вы работаете.

В обеих средах есть команда под названием schtasks это позволяет настраивать запланированные задачи из командной строки, хотя возможности этого инструмента зависят от платформы. Это позволит вам настроить одноразовую задачу, которая будет вызывать оставшуюся часть вашего скрипта. Он должен быть в отдельном файле, но будет выполнен один раз в 17:30.

Синтаксис XP: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/schtasks.mspx

Синтаксис Server-2008: http://technet.microsoft.com/en-us/library/cc725744%28WS.10%29.aspx#BKMK_once

Наверное, не лучший способ сделать это, но вот что:

:loop
if %TIME% LSS 17:30:00.00 goto loop
echo Continuing at %TIME%

Я не знаю ни одной команды для ожидания определенного времени, но вы можете найти ее в Google. Подобные проблемы мы решаем, разбивая командные файлы на отдельные части и планируя их индивидуально.