В nnCron есть возможность запускать задачи\скрипты из внешних бат файлов
из хелпа :[more]
Запуск задачи в качестве отдельного скрипта
Задачу можно вынести в отдельный файл, после чего запускать этот файл как скрипт (или батч-файл). Чтобы запустить задачу-скрипт, введите в командной строке:
nncron.exe -runfile script_filename
Чтобы запуск задачи-скрипта был успешным, скрипт должен содержать форт-слово main
Пример:
\ --- start of script file ----
: main
MSG: "Hello, WORLD!"
SEND-KEYS-DELAY: 100 100
SEND-KEYS: "$r{DELAY 1000}ping localhost -t{ENTER}"
5000 PAUSE
SEND-KEYS: "^c"
;
\ --- end of script file ------
--------------------------------------------------------------------------------
Примечание: запуская задачу вручную, помните, что тем самым вы принудительно отменяете все условия запуска (Time:, Rule:, Watch*), определенные в задаче. Указание "выполнить задачу вручную" имеет безусловный приоритет над всеми остальными условиями! Если же вы хотите создать задачу, которая бы проверяла определенные условия даже при "ручном" запуске, перенесите условие внутрь раздела Action:. Например, вместо
#( test_rule
Rule: PROC-EXIST: "notepad.exe"
Action:
MSG: "Notepad exists!"
)#
напишите:
#( test_rule1
Action:
PROC-EXIST: "notepad.exe"
IF
MSG: "Notepad exists!"
THEN
)#
[/more]
Так же есть возможность из одной задачи запустить активировать другую.
[more]
...как программно применить к задаче опцию NoActive или, наоборот, отменить ее действие?
Изнутри самой задачи:
\ активизируем
CUR-NODE CF-ACTIVE SET-CRON-FLAG
\ деактивизируем
CUR-NODE CF-ACTIVE CLR-CRON-FLAG
Из другой задачи:
\ активизируем
<task_name> @ CF-ACTIVE SET-CRON-FLAG
\ деактивизируем
<task_name> @ CF-ACTIVE CLR-CRON-FLAG
Обратите внимание, что программно оперируя опцией NoActive вы не вносите физических изменений в кронтаб-файл. Это означает, что вы меняете статус активности задачи только до следующего перечитывания кронтабов.
С помощью следующих слов вы можете проверить - установлена ли у задачи опция NoActive:
\ проверяем активность изнутри самой задачи:
CF-ACTIVE?
IF
\ ...
THEN
\ проверяем активность из другой задачи:
<task_name> @ CRON-FLAGS @ CF-ACTIVE AND?
IF
\ ...
THEN
[/more]
Но нельзя из внешнего файла изменить сво-во опредленной задачи на ACTIVE
т.е. с бат.файла поставить сво-во скрипта ACTIVE и де актив....
Как вариант я думаю можно написать на каждый скрипт по скрипту, который будет активировать , де активировать 1-й скрипт... а уже этот скрипт (Активатор-Де активатор) запускать из бат файла, но это не удобно - придеться писать по скрипту на каждый скрипт
, может быть можно сразу на прямую из бат файла активировать, де активировать скрипт?