Расширенный режим (синтаксис)
Расширенный режим - основной и самый мощный синтаксический режим работы nnCron. В расширенном режиме у пользователя появляется возможность создавать именованные "Задачи" (Tasks), каждая из которых запускается в указанное пользователем время и позволяет тонко настраивать и сами выполняемые действия и условия, при соблюдении которых они выполняются.
Описание каждой задачи начинается с такой синтаксической конструкции:
#( <имя_задачи>
Встретив эту последовательность, парсер кронтаба сразу переключается в расширенный режим.
Другая конструкция:
)#
означает конец описания задачи и переключает парсер кронтаба обратно в классический режим. Сделано это для того, чтобы классический и расширенный режимы могли легко "уживаться" рядом друг с другом в одном кронтабе. Логика проста: все в кронтабе, что находится внутри конструкции
#( task_name )#
- это расширенный режим, а все, что находится вне этой конструкции - классический. "Простенько и со вкусом". :)
Пример:
# запускаем bat-файл каждый час 0 * * * * * cmd /c "c:\xxx\my.bat" # это классический режим #( my_task \ а это уже расширенный режим \ выводим сообщение раз в тридцать минут Time: */30 * * * * * Action: TMSG: "Прошло тридцать минут" 3 )#
Расширенный режим допускает наличие любого количества пустых строк - они не учитываются парсером. Лидирующие пробелы и знаки табуляции тоже игнорируются. Важное замечание: синтаксис расширенного режима требует, чтобы все ключевые слова nnCron были разделены хотя бы одним пробелом, знаком табуляции или переводом строки.
Расширенный режим позволяет "разбивать" длинные строки на любое количество коротких с помощью символа '\' (обратный слеш) в месте разрыва. При разборе задачи парсер сам "склеит" несколько коротких строк в одну длинную. Например, две следующие задачи совершенно идентичны с точки зрения парсера:
#( test_task \ это комментарий Action: \ парсер воспримет следующие короткие строки как одну длинную START-APP: c:\very\very\long\\ path\to\the\file.exe \ -run my-script -exit \ -nowarning )# #( test_task1 \ это комментарий Action: \ а это - длинная строка: START-APP: c:\very\very\long\path\to\the\file.exe -run my-script -exit -nowarning )#
В любом месте внутри каждой задачи можно использовать специальный знак комментария до конца строки, который принят в языке Форт: \ (обратный слэш). Не забывайте ставить пробел и после знака комментария, поскольку знак комментария тоже является ключевым словом nnCron.
Символ комментария классического режима (#) не действует в расширенном режиме!
Пример:
#( first_task \ это моя первая самостоятельная задача NoLog \ опция Time: */15 * * * 1-5 * \ спецификатор времени Action: \ действие PLAY-SOUND: c:\winnt\media\chimes.wav )#
Теперь обсудим главное достоинство расширенного режима - "задачу" (Task).