Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron-Планировщик с поддержкой скриптового языка

Модерирует : gyra, Maz

Widok (29-01-2008 15:38): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

   

8AleX8



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nnCron
 
nnCron - это компактный, но мощный планировщик и менеджер автоматизации с собственным скриптовым языком, основанным на синтаксисе языка программирования Форт. Помимо традиционной для планировщика способности запускать в указанное время программы, "напоминалки" и открывать документы ..
 
nnCron способен отслеживать файлы, флаги, окна, процессы, движения мыши, время простоя компьютера, клавиатурные шорткаты, выход в онлайн/оффлайн, появление диска в драйве, наличие хоста в сети (пинг), изменение удаленного ресурса по http-протоколу, количество свободного места на диске, загруженность оперативной памяти и многое другое...
 
nnCron понимает cron-формат (Unix) и управляется с помощью текстовых кронтаб-файлов. Для тех, кто любит работать с GUI есть графическая оболочка из которой можно удалять/добавлять/редактировать и запускать задачи, устанавливать напоминалки, менять настройки программы.  
 
nnCron позволяет использовать в задачах VBScript/JScript, регулярные выражения и расширяется за счет плагинов. Он может быть запущен в качестве службы (сервиса) или как обычное приложение. Обладает средствами удаленного администрирования. Подробнее прочитать о возможностях nnCron вы можете в online-документации.
 
nnCron бесплатен для граждан стран бывшего СССР при условии частного и некоммерческого использования.


история изменений - http://www.nncron.ru/forums/viewforum.php?f=11
форум - http://www.nncron.ru/forums/
 
архив конференции поддержки: » fido7.ru.nncron
 
скачать: http://www.nncron.ru/download_ru.shtml - программу, документацию, плагины, скрипты
 
последняя версия:  
 
v.1.91 (build 1083) - последний релиз от 21 марта 2006 (+ основные плагины и документация на английском языке)  
 
документация:  
 
help_ru.zip  (обновляется регулярно) документация nnCron (на русском языке)
faq_ru.zip nnCron FAQ (на русском языке)  
spf_help.zip (130k  20 Nov 2002)  описание основных слов SP-Forth (на русском языке)  
sf.chm (1.5M  03 Feb 2003)  книга Leo Brodie "Начальный курс программирования на языке Форт" (на русском языке)  
 
полезные ссылки:
* » nnBackup - крошечная (250k) консольная утилита, предназначенная для резервного копирования файлов, синхронизации содержимого каталогов, создания и обработки файл-листов.  
* » Cтатья Валерия Кондакова про возможности nnCron  
* » Канал "nnCron releases" для » WatzNew by 8AleX8
* » Файл расцветки синтаксиса исходников языка Форт и кронтабов nnCron для плагина Colorer (Far Manager)
* » Редактор мелодий для beeper'a под nnCron
Если не работает новая, правильно написанная задача, то попробуйте добавить в опции задачи слово AsLoggedUser (галочка в свойствах новой задачи "Как пользователь, выполнивший login") и, возможно, LoadProfile (галочка "Загрузить профиль").
 

Полезные самодельные задачи для сабжа
 

Всего записей: 1813 | Зарегистр. 11-12-2001 | Отправлено: 23:26 27-04-2002 | Исправлено: lucky_Luk, 18:16 22-09-2007
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Timon_Crazy
Для первой задачи (запуск миранды)...

Код:
#( Run_miranda
Time: * * * * 1-5 *
Rule: INTERVAL: 07:45-17:15/00:15 PROC-EXIST: "miranda32.exe" NOT AND HOST-EXIST: "192.168.2.6" AND
Action:
    ShowNormal   NormalPriority
    START-APP: C:\Program Files\Miranda IM\miranda32.exe
)#

или

Код:
#( Run_miranda
Time: */15 * * * 1-5 *
Rule: INTERVAL: 07:45-17:15 PROC-EXIST: "miranda32.exe" NOT AND HOST-EXIST: "192.168.2.6" AND
Action:
    ShowNormal   NormalPriority
    START-APP: C:\Program Files\Miranda IM\miranda32.exe
)#

 
Хотя часть правил можешь вынести в тело задачи. Как удобнее.
 
А вот во 2-ой задаче не могу придумать от чего отталкиваться. У тебя выбор: или проверять каждую минуту (или любой другой промежуток) на существование процесса и убивать его; или убивать его при запуске процесса, но тогда задача не сработает, если nnCron запущен после запуска миранды.
Выбирай.

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 12:00 13-04-2006 | Исправлено: unreal666, 12:05 13-04-2006
sabio

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, что-то у меня не получается передать параметры для запускаемых программ.
Задачу создавал через GUI, выбрал программу для запуска, в следующем поле ввел параметры, в итоге получилось так:

Код:
#( test
AsLoggedUser
Time: 0 1 * * 1-5 *
Action:
StartIn: "D:\"  
ShowNormal   NormalPriority
START-APP: D:\test.bat "some message here"
)#

Но если после этого я пытаюсь редактировать эту задачу через GUI, то и программа и параметры уже выводятся в одной строке.
Но это бы ладно. Хуже всего то, что пока я не сделаю просто

Код:
START-APP: D:\test.bat

этот батник не запускается (вставленный первой строкой echo в файл ничего не выводит), хотя в логе nnCron-а пишется стандартное Start result: 0
Вопрос: как передать батнику параметры при запуске?
 
А еще мне надо как-то получить логин текущего пользователя. Сразу после установки nnCron в окружении для этого батника его можно было вытащить по %USERPROFILE%. Но после первой же перезагрузки компа батник стал запускаться в окружении для Default User. Что с этим можно сделать?

Всего записей: 2898 | Зарегистр. 21-05-2004 | Отправлено: 13:10 13-04-2006
Timon_Crazy



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Лучше проверть на существование процеса и убивать.
ка креализовать ?
именно только в выходные дни и в не рабочее время
 
Добавлено:
unreal666
не работает скриптик..

Всего записей: 353 | Зарегистр. 16-08-2003 | Отправлено: 13:30 13-04-2006
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Timon_Crazy
Возможно пинг не проходит. Попробуй для начала без пинга. И попробуй пропингуй этот комп вручную; если на нем стоит файрвол, то пинг скорее всего не пройдет. При нормальных настройках файервола, он (файер) по умолчанию блокирует пинг.
 
Да. Еще добавь перед Action:

Код:
AsLoggedUser
LoadProfile

И какой из вариантов задачи используешь?
 
2-ая задача

Код:
#( Kill_miranda
Rule: INTERVAL: 17:16-07:44 WDay@ 6 < AND WDay@ 5 > OR PROC-EXIST: "miranda32.exe" AND
Action:  
    KILL: "miranda32.exe"
)#

 
 
sabio
 
Дай код батника.

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 19:25 13-04-2006 | Исправлено: unreal666, 19:31 13-04-2006
sabio

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
Да элементарный он. Говорю же, у меня даже вставленный в самое начало echo с редиректом в файл ничего не выводил, пока не убрал параметр. А вообще батник у меня такой:
Код:
 
@echo off
 
set MSG=%1
if "%MSG%" == "" set MSG="Disk burn complete"
 
set USERNAME=%USERPROFILE:C:\Documents and Settings\=%
 
for /F "tokens=1,2 skip=13 usebackq" %%n in (%0) do (
  if /I %%n EQU %USERNAME% net send %%o %MSG%
)
goto :eof
 
rem add login and workstation name below this line
xxx host1
yyy host2
 

 
А задача для его запуска такая:
Код:
 
#( burn_complete_notify
AsLoggedUser
WatchWindow: "Done - [*"
Action:
StartIn: "C:\Program Files\nnCron"  
SWHide   NormalPriority
START-APP: C:\Program Files\nnCron\notify.bat
)#
 

(по идее, это все должно отправлять net send-ом месагу по завершении записи диска в Nero)
 
Но сейчас меня больше волнует проблема, как в этом батнике получить имя текущего пользователя? А вопрос передачи парметров актуален только, если его (имя пользователя) придется передавать из nnCron. Ну и на будущее, конечно.

Всего записей: 2898 | Зарегистр. 21-05-2004 | Отправлено: 20:21 13-04-2006
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sabio

Цитата:
Но если после этого я пытаюсь редактировать эту задачу через GUI, то и программа и параметры уже выводятся в одной строке.

Так и должно быть, потому что это и есть одна строка, просто при создании задачи строка поле "Параметры" сделано для удобства.

Цитата:
этот батник не запускается (вставленный первой строкой echo в файл ничего не выводит),

Эта фигня из-за самого батника, nnCron тут ни причем. Прсто у тебя не рассмотрен случай развертывания переменной %MSG%. Можешь даже из командной строки запустить батник с твоим параметром - вылезет ошибка.
Для твоего примера при развертывании переменной получается такая каша

Код:
if ""some message here"" == "" set MSG="Disk burn complete"

Как видишь получается глюк. Спроси в теме про батники как такое учитывать. Или вводи параметр без кавычек, но тогда параметр должен состоять из одного слова.
 

Цитата:
как в этом батнике получить имя текущего пользователя?

попробуй еще в задаче включи галку "Загрузить профиль".

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 22:10 13-04-2006 | Исправлено: unreal666, 22:13 13-04-2006
sabio

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
Да, про эти лишние кавычки я и правда не подумал. Спасибо!
(а в тему про батники мне нечего идти - я и сам знаю, как их убрать: set MSG=%~1
С профилем тоже поробую..

Всего записей: 2898 | Зарегистр. 21-05-2004 | Отправлено: 09:16 14-04-2006
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igaraev
для решения описАнной тобою тут проблемы я предложил тебе свой вариант ее решения, которое ты посчитал не изящным...
Недавно на оффоруме промелькнул код изящество которого ты должен  признать:
Код:
\ \ переименовываем, добавляя лидирующий ноль (если нужно)  
FILE-RENAME: "e:\tmp3333\date.dbf" "e:\tmp3333\%MY_YEAR% %MY_MONTH S>D <# # # #>% %MY_DAY S>D <# # # #>%.dbf"
самое интересное что сегодня корректируя один из своих старых кронтабов я столкнулся с тем, что я уже применял этот способ добавления лидирующего нуля   , ну что-ж, пусть будет на один способ больше  

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 04:57 27-04-2006
LArV

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плиз как открыть сайт (например: "www.site.org") в браузере по умолчанию?
START-APP: "http://www.site.org/" - такая конструкция не работает

Всего записей: 255 | Зарегистр. 25-08-2005 | Отправлено: 16:02 28-04-2006
Stygis

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LArV
Подозреваю, что есть лучшее решение, но можно через VB/JScript

Код:
Action:
    <JScript>
         var WshShell = new ActiveXObject('WScript.Shell');
         WshShell.Run("http://www.ya.ru", 0, false);
         delete WshShell;
    </SCRIPT>

Всего записей: 2497 | Зарегистр. 24-09-2005 | Отправлено: 16:27 28-04-2006
LArV

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stygis, благодарю работает
А средствами сабжа, кто-нибудь знает?

Всего записей: 255 | Зарегистр. 25-08-2005 | Отправлено: 16:57 28-04-2006
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LArV

Код:
Action:
     5 0 0 Z" http://www.site.org/"  Z" open" 0 ShellExecuteA DROP

Сделал на основе статейки в справке ...как запускать программы с помощью ярлыков/шорткатов (*.lnk)?

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 19:43 28-04-2006 | Исправлено: unreal666, 19:49 28-04-2006
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LArV
вот еще в копилку два варианта с оффорума:
первый от Валерия Кондакова (создатель справки к nnCron'у):
Код:
START-APP: C:\Program Files\Internet Explorer\iexplore.exe http://www.site.org/"

и второй от Tez'а (тоже хорошо знает nnCron и Форт):
Код:
: OPEN-URL ( a u -- ) S" %ComSpec% /c start " 2SWAP S+ START-APP ;  
: OPEN-URL: eval-string, POSTPONE OPEN-URL ; IMMEDIATE  
Action:  
OPEN-URL: "http://www.site.org/"

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 21:35 28-04-2006
Stygis

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus

Код:
 START-APP: C:\Program Files\Internet Explorer\iexplore.exe http://www.site.org/"

А если дефолтный браузер другой? Поэтому и спрашивали про дефолтный браузер, а не ИЕ.
А второй вариант, насколько я понял - это практически то же самое, что предлагал я, только из ком строки, а не через JS

Всего записей: 2497 | Зарегистр. 24-09-2005 | Отправлено: 21:46 28-04-2006 | Исправлено: Stygis, 21:46 28-04-2006
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus

Цитата:
START-APP: C:\Program Files\Internet Explorer\iexplore.exe http://www.site.org/"

Ему надо открыть ссылку в браузере по умолчанию, а этот вариант в конкртеном браузере.
 
Да и мой вариант действует так, как действовала бы сама ОС.
 
Добавлено:
Stygis
А как тебе мой вариант?

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 21:56 28-04-2006
Stygis

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
Я честно говоря, довольно мало в nnCron'е работал с Фортом, только начал можно сказать разбираться.  Так что ничего не могу сказать
Вот если скажешь, что значит "5 0 0 Z..." буду благодарен Z - это, кажется, создание пустой строки, а вот остальное... %)
ЗЫ. Кстати, в том же месте, что указал ты, чуть позже лежит описание запуска ярлыка через JS - то же, что написал и я Ток они забыли уничтожить объект

Всего записей: 2497 | Зарегистр. 24-09-2005 | Отправлено: 22:24 28-04-2006 | Исправлено: Stygis, 22:25 28-04-2006
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stygis, unreal666   , ага первый вариант в данном случае не решает поставленной задачи, хотя на оффоруме и он верен.
 
  А второй вариант, действительно аналогичен тому что сделан через VB/JScript, однако, IMHO, удобнее и практичнее даже по сравнению с воистину гениальным решеним   unreal666, по двум причинам:
1. банально, но в использовании он нагляднее и короче в написании
2. он предоставляет два слова постфиксное и префиксное, причем именно постфиксное, как правило, удобнее при использовании в nnCron'е.
 
  Идеальным на мой взгляд было бы определить слова OPEN-URL и OPEN-URL: через ShellExecuteA, но на манер Tez

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 22:55 28-04-2006
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вот если скажешь, что значит "5 0 0 Z..." буду благодарен  Z - это, кажется, создание пустой строки, а вот остальное... %)

Не Z, а Z" xxx" (в данном случае Z" http://www.site.org/" и Z" open") - это нуль-строка (строка без счетчика с завершающим нулем, az-строка), аналогично S" xxx" DROP. Такие строки используются, например, в вызовах API, а также в случаях, когда длина строки может превышать 255 символов: у нуль-строк нет ограничения по длине.
Эта инфа находится в справка -> Дополнительная информация -> "Неотложная помощь" по Форту -> Какие типы строк используются в SP-Forth?
 
Посмотрел через консоль что-это за слово такое ShellExecuteA, оказалось, что это функция API из библиотеки SHELL32.DLL. Вот ее описание из библиотеки MSDN:
 
ShellExecute(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd).
 
Вот расшифровка...
 
В nnCron эти параметры вводятся в обратном порядке (потому что слова в nnCron считывают первым то, что положилось последним на стек).

----------
MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 23:04 28-04-2006 | Исправлено: unreal666, 23:13 28-04-2006
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stygis
Цитата:
...Вот если скажешь, что значит "5 0 0 Z..." буду благодарен  Z - это, кажется, создание пустой строки, а вот остальное... %)...

  Все это передача параметров для WinAPI функции ShellExecute - открытие "специфицированного" файла,
  Z" open" создание строки "open" заканчивающейся нулем, как принято в WinAPI, помимо "open" можно еще использовать "print" и "explore"

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 23:11 28-04-2006
sabio

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LArV

Цитата:
как открыть сайт в браузере по умолчанию?

Может, я, конечно, чего не понимаю, но что мешает сделать просто так:

Код:
START-APP: start http://opera.com

 
Единственный минус - через диалог создания новой задачи это сделать не получится - nnCron ругается, что не может найти этот самый start. А если руками в nncron.tab написать - работает без проблем.

Всего записей: 2898 | Зарегистр. 21-05-2004 | Отправлено: 23:17 28-04-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron-Планировщик с поддержкой скриптового языка
Widok (29-01-2008 15:38): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru