Утилиты at и soon — запуск файла из командной строки

Утилиты at и soon — запуск файла из командной строки Командная строка

В мире существует только два типа пользователей, первый – люди для которых компьютер вместе с операционной системой всего-навсего элемент современных технологий, игрушка на которой можно поиграть игры, полазить по сайтам, сохранять гигабайты личной информации, но, есть и второй тип – люди которые готовы отбросить комфорт и красоту, лишь бы этот кусок железы был их рабом, выполнял запуск файла через командную строку, создавал графические шедевры, превращал виртуальные мысли в реальные предметы, или выполнял желания на худой конец.

Для многих людей, планирование различных заданий с помощью персонального компьютера столь же привычный процесс, как для других записная книжка. Несложно представить реакцию людей, которые наблюдают самошевелящуюся мышку, будто бы за компьютером сидит некий призрак, ну скажем, черный геймер. Сюжет такой картины выполним в двух случаях – если системой управляют удаленно, или же если производится запуск файла через командную строку или средствами Windows, например, Windows Script Host определенной программы или файла. Конечно, вариант с CMD довольно экзотичен, но… его мы и рассмотрим в этой статье. Для этого нам понадобятся две утилиты – AT и SOON.

Утилита AT — запуск файла из командной строки

Прежде все можно выполнить команду AT без параметров, что бы посмотреть, а не запланировано ли чего уже до нас (Пуск/Выполнить/CMD AT). Данная утилита использует следующий синтаксис:

AT [имя_компьютера] [ [код] [/DELETE] | /DELETE [/YES]]

AT [имя_компьютера] время [/INTERACTIVE][/EVERY:дата[,…] | /NEXT:дата[,…]] "команда"

Первый синтаксис используется, когда надо отменить выполнение задания. Второй – для собственно самой планировки.

имя_компьютера – данный параметр не является обязательным, он используется, если надо прописать имя удаленного компьютера, на котором надо запустить файл через командную строку. Без этого параметра выполнение будет произведено на текущей машине.

Код – данный параметр определяет идентификационный номер, который был присвоен команде или программе, которую надо запустить. При отсутствии кода произойдет удаление всех заданий. Если необходимости в подтверждении удаления заданий нет, то используется ключ /YES.

Время – тут прописывается время, когда надо запустить команду на выполнение. Время задается в 24-часовом формате часы:минуты (от 00:00 До 23:59).

/INTERACTIVE – дает возможность утилите AT производить обмен данным с теми пользователями, что будут находиться в системе в момент выполнения задачи (в случае выполнения утилиты командной строки или пакетного файла будет создано новое командное окно).

/EVERY:дата[,…] – данный ключ позволяет выполнять задание в заданные дни в течение недели или месяца (например, каждый четверг или каждый третий день месяца). Дни недели задаются буквами (пн, вт, ср, чт, пт, сб, вс или М, Т, W, Th, F, S, Su), в зависимости от того, какая версия Windows установлена, а дни месяца — цифрами (от 1 до 31). Если используется несколько дат, то они разделяются запятыми. При отсутствии данного ключа принимается текущая дата.

/NEXT:дата[,…] – выполнение производится при наступлении следующей даты (например, в следующий четверг).

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

Стоить помнить определенный момент, что если надо не исполняемый или пакетный запустить файл через командную строку, а собственно некую внутреннюю функцию CMD (например, COPY или DIR), то прежде надо выполнить командный интерпретатор с ключом , например:

AT 23:00 "CMD /С DIR > C:test.out"

Как только задание будет запланировано, ему будет присвоен код (идентификационный номер).

Как и при роботе со стандартными функциями CMD, можно использовать символы перенаправления > и >> для вывода результата во внешний файл. Все, что запланировано с помощью утилиты AT хранится в системном реестре, что не даст пропасть заданию при перезапуске системы или службы расписаний. Текущим каталогом для выполнения запланированных команд по умолчанию является каталог %systemRoot%.

Примеры:

Имеется некий сетевой диск х, он подключен к сетевому ресурсу ServerBackup, на нем надо произвести резервное копирование. Для этой цели был создан пакетный файл mybackup.bat, он производит копирование по указанному в качестве параметра пути. Что бы произвести запуск данного файла из командной строки в 1 час ночи, то надо применить следующий синтаксис:

AT 1:00 mybackup.bat ServerBackup

тогда как недопустимой является следующая форма:

AT 1:00 mybackup x

Проверяем список запланированных заданий:

AT \Serverl

Отменяем выполнение всех заданий на удаленной машине Server:

AT \Serverl  /DELETE

Нужно произвести резервирование данных каждый день на текущую машину в папку D:BACKUP с сервера server (сетевой путь \Serverprogramsprogram) с подключением сетевого диска. Процесс копирования должен начинаться в 2 часа ночи, плюс, надо резервировать только измененные за прошедший день файлы, включая скрытые. Для решения этой задачи можно создать файл mycopy.bat следующего содержания:

REM Подключаем сетевой диск
NET USE Y: ServerPrograms
REM Копируем нужные данные
XCOPY /Е /D /Н /С Y:PROGRAM D:BACKUPPROGRAM
REM Отключаем сетевой диск
NET USE Y: /DELETE

Запланировать ежедневный запуск этого файла в заданное время можно при помощи следующей команды:

AT 2:00 /EVERY: М,Т,W,Th,F,S,Su D:mycopy.bat

Утилита SOON из пакета Resource Kit

В отличие от предыдущей утилиты, утилита SOON не требует задания абсолютного времени выполнения, надо просто задать количество секунд, через которое произойдет запуск файл для выполнения через командную строку, начиная с текущего момента. Вторым отличием является возможность циклического выполнения каких-либо задач с интервалом, меньшим одного дня. Что бы это осуществить, надо просто собрать все команды в один документ, включить в него команду SOON и выполнить. Команда SOON необходима, что бы вновь произвести выполнение данного файла.

Данная утилита подразумевает два режима – планирование и конфигурация.

Синтаксис планирования:

SOON [компьютер] [задержка] [/INTERACTIVE] "команда"

компьютер — данный параметр не является обязательным, он используется, если надо прописать имя сетевого ресурса. Без этого параметра выполнение будет произведено на текущей машине.

задержка – интервал времени (секунды), через который будет выполнена данная программа или утилита. При отсутствии этого ключа, время берется из конфигурационных установок. Стоит учитывать, что в таком случае, если выполнение производится на текущей машине, то SOON использует свой параметр LocalDelay, а если на сетевом ресурсе, то SOON использует свой параметр RemoteDelay.

Синтаксис конфигурации:

SOON /D [/L:n] f/R:n][/I:{ON|OFF}]

/D – говорит, что надо вывести или модифицировать свои настройки по умолчанию. При отсутствии ключа, SOON выполняется в синтаксисе планирования.

/L:n – настройка параметра LocalDelay — задержка во времени по умолчанию для текущей машины (n – интервал в секундах), по дефолту стоит 5 секунд.

/R:n – настройка параметра RemoteDelay — задержка во времени по умолчанию для сетевой машины (n – интервал в секундах), по дефолту стоит 15 секунд.

/I:{ON|OFF} — настройка параметра InteractiveAlways. Если установлено в ON – будет происходить взаимодействие с пользователем. По дефолту стоит OFF.

Например, надо каждый пять минут производить запуск программы или исполняемого файла через командную строку, например, someprog.exe. Решение заключается в создании батника every5.bat:

SOON 300 every5.bat someprog.exe

Далее надо просто прописать в командной оболочке

SOON every5.bat

Как только произойдет запуск файла из командной строки — every5.bat, то произойдет выполнение утилиты SOON, стоящей в первой строчке, которая вновь запланирует еще один запуск данного пакетного файла через 5 минут. После этого выполнится программа someprog.exe.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий