Ru-Board.club
← Вернуться в раздел «Программы»

» nnCron-Планировщик с поддержкой скриптового языка

Автор: strauss
Дата сообщения: 07.04.2004 17:11
CUrve

Вообще, задача не самая тривиальная. Но решается не слишком сложно:


Код: #( test_rename_files
\ NoActive
WatchHotKey: "${F6}"
Action:
FOR-FILES: "C:\TEMP\*"
\ узнаем и сохраняем расширение файла:
FOUND-FILENAME S" /^.*\.(.*)$/" RE-MATCH
IF
$1 PAD PLACE
ELSE
S" " PAD PLACE
THEN
\ узнаем время создания файла и переименовываем его:
FILE-TIME: "%FOUND-FULLPATH%" FT>DD.MM.YYYY/hh:mm:ss
S" /(.*)\/(\d*)\d*)\d*)/" RE-MATCH
IF
FILE-RENAME: "%FOUND-FULLPATH%" "C:\TEMP\%$1%-%$2%.%$3%.%$4%.%PAD COUNT%"
THEN
;FOR-FILES
)#
Автор: Svarga
Дата сообщения: 07.04.2004 17:42
Развлекался на досуге, если кому интересно:
Нотный редактор для nnCron и beeper'а
Намного быстрее, чем руками набираются ноты + возможность изменения темпа, транспозиции по октавам...

Вот тестовая тема:
http://forum.ru-board.com/topic.cgi?forum=2&topic=0985#1
Автор: CUrve
Дата сообщения: 07.04.2004 22:37

Цитата:
CUrve
Вообще, задача не самая тривиальная. Но решается не слишком сложно:

Большое спасибо, правда я полный профан и у меня этот скрипт не заработал, хотя, вроде бы, все ок. Может я что то непонял? В "C:\Temp" все остается по старому.
Автор: strauss
Дата сообщения: 07.04.2004 23:50
CUrve

Думаю, проблема в том, что скрипт нашей бордв вставил в текст задачи свои смайлики. должно было быть так:


Код:
#( test_rename_files
\ NoActive
WatchHotKey: "${F6}"
Action:
FOR-FILES: "C:\TEMP\*"
\ узнаем и сохраняем расширение файла:
FOUND-FILENAME S" /^.*\.(.*)$/" RE-MATCH
IF
$1 PAD PLACE
ELSE
S" " PAD PLACE
THEN
\ узнаем время создания файла и переименовываем его:
FILE-TIME: "%FOUND-FULLPATH%" FT>DD.MM.YYYY/hh:mm:ss
S" /(.*)\/(\d*):(\d*):(\d*)/" RE-MATCH
IF
FILE-RENAME: "%FOUND-FULLPATH%" "C:\TEMP\%$1%-%$2%.%$3%.%$4%.%PAD COUNT%"
THEN
;FOR-FILES
)#
Автор: Timon_Crazy
Дата сообщения: 08.04.2004 14:04
Как можно с помощю Хрона, зделать отправку брэккэстом, тосеть юзеру по локалке в случае настплуения определенного события?
Автор: DJ makrus
Дата сообщения: 14.04.2004 22:10
Доброго времени суток!
Не могли бы подсказать как организовать массив (хотя бы одномерный, но если не сложно, то и 2/3-х мерный), каждый элемент которого был бы сторокой (например имя файла).
В справке примеры массивов из цифр и символов (массив из символов - строка, но одна), справка за подробностями отправляет к документации по Форту, но я просмотрел книгу Л. Броуди и справочник по командам Форта, но с массивами так и не разобрался
Автор: Zhuk
Дата сообщения: 17.04.2004 00:05
Подскажите пожалуйста, можно ли nncron'ом сделать такое:
Есть диалап соединение с Интернетом с динамическим ip адресом. Поверх него устанавливается vpn соединение (и винда прописывает его шлюзом по умолчанию).
Нужно чтобы маршрут к некоторым адресам шел в обход vpn.
Если бы ip на диалапе был постоянным, то все решалось бы просто запуском bat файла со списком маршрутов, например:
Route add 123.123.0.1 22.22.22.22
Route add 123.123.0.2 22.22.22.22
Route add 123.123.0.3 22.22.22.22
Но поскольку адрес шлюза 22.22.22.22 динамический, то его надо писать в виде переменной наверно? Но я не знаю как Может ли nncron присвоить переменной значение ip адреса текущего соединения и передать ее в бат файл?
В линуксе все проще, там в качестве шлюза можно указать имя интерфейса, но виндовой команде route надо обязательно ip адрес.
Автор: strauss
Дата сообщения: 21.04.2004 20:53
DJ makrus

Строка в Форте это два числа на стеке: адрес и длина (счетчик). Что тебе мешает записывать в массив адрес строки (как число), а потом (при использовании строки) пользоваться словом COUNT, чтобы добавить к адресу счетчик?


Zhuk

Ну, если ты знаешь, как получить имя IP-соединения, то можно.
Автор: Dima1
Дата сообщения: 27.04.2004 08:32
Доброе время суток!
Решил освоить nnCron. Для начала решил автоматизировать обновления DrWeb.
Задача:
1.Проверяем наличие интернет соединения.
2.Если соединение есть
a)запускаем Drwebupw.exe
b)ждем завершения приложения
c)завершаем работу скрипта
3.Если соединения нет:
a)запускаем звонилку
b)проверяем,что соединение установлено
с)запускаем Drwebupw.exe
d)ждем завершения приложения
e)разрываем соединение
f)завершаем работу скрипта
Пока что улось только так:
Текст скрипта:
ONLINE: "My_DIAL" 0=
IF
RASUser: "USER"
RASSecPassword: "PASSWORD"
DIAL: "My_DIAL" 5 30
THEN
ONLINE: "My_DIAL"
IF
StartIn: "D:\Soft\Security\DrWeb for Windows"
ShowNormal NormalPriority
START-APPW: D:\Soft\Security\DrWeb for Windows\Drwebupw.exe /Go
HANGUP: "My_DIAL"
THEN
Вопрос: Как сделать чтобы, если до выполнения скрипта соединение было, то оно оставалось и после,
а если его не было до скрипта, то после выполнения скрипта оно разрывалось.
В моем скрипте соединение в конце разрывается в любом случае.
Надеюсь на помощь.
Автор: DO
Дата сообщения: 27.04.2004 16:29
Взводить флажочек.

Примерно так:


Код:
#( dialer
VARIABLE flag
Action:
flag OFF
ONLINE: "My_DIAL" 0=
IF
RASUser: "USER"
RASSecPassword: "PASSWORD"
DIAL: "My_DIAL" 5 30
flag ON
THEN
ONLINE: "My_DIAL"
IF
StartIn: "D:\Soft\Security\DrWeb for Windows"
ShowNormal NormalPriority
START-APPW: D:\Soft\Security\DrWeb for Windows\Drwebupw.exe /Go
flag @ IF
HANGUP
THEN
THEN
Автор: LeXXeR
Дата сообщения: 29.04.2004 06:56
Господа! Помогите решить проблему с терминальным сервером. Ранее на нем запускался ряд нехитрых скриптов (бэкап, хоткеи и пр.), причем все они выполнялись от имени админа, который работал на нём локально как на рабочей машине (т.е. не открывал как все остальные терминальную сессию). Теперь админ стал таким же "как все" и заходит на сервер удаленно со своей машины. После этого перестали выполняться скрипты. Попытка запускать Крон не сервисом (т.е. с ключом -ns) "оживила" лишь часть скриптов, другая же, связанная с бэкапом по лок.сети теперь ругается на то, что "клиент не обладает требуемыми правами". Это происходит даже если авторизовать каждую задачу от имени админа как в опциях самой задачи, так и в глобальных настройках самого Крона (на вкладке "Авторизация" стоят все галочки). Интересно, что при установке авторизации задачи, нажимая кнопку "Проверить", можно комбинировать сочетания любых пользователей, типов логона - результат один - "Logon не выполнен. Ошибка #1314. Клиент не обладает требуемыми правами". Почему?

ОС Win2k Server Rus SP4 + Citrix MetaFrame1.8 + nnCron 1.89. RC6. Сеть с доменами.
Автор: chum2000
Дата сообщения: 30.04.2004 12:23
Подскажите пожалуйста, что не так

#( test_proccpuusage2
VARIABLE my_var
Action:
S" notepad.exe" PROC-CPU-USAGE . . my_var !
MSG: "second_var = %my_var @%"
)#

При выполнении показывается нечто не понятное, а потом пишет "Ошибка стека"
Автор: DJ makrus
Дата сообщения: 07.05.2004 22:17
chum2000
Если я не ошибаюсь то в строке

Цитата:
MSG: "second_var = %my_var @%"

не нужен оператор "извлечения" значения переменной "@", т. к. символы %% указывают что между ними переменная, и, соответственно подставляется ее значение.
А в строке

Цитата:
S" notepad.exe" PROC-CPU-USAGE . . my_var !

используется оператор "." (забрать верхнее значение со стека и вывести его на консоль ) ???
Хорошо бы узнать что за задачу ты пытаешься выполнить (опиши ее словами) и\или комментарии к строкам задачи
Автор: chum2000
Дата сообщения: 08.05.2004 16:27
DJ makrus

Цитата:
S" notepad.exe" PROC-CPU-USAGE . . my_var !

Эта функция возвращает сколько машинного времени в процентах занимал процесс (в данном случае notepad.exe). Надо чтобы это значение заносилось в переменную, а потом выводилось сообщение
Автор: roman78
Дата сообщения: 10.05.2004 23:34
простая задача, но решить не получается: как перенести файл(ы) на уровень выше?

#( copy-past
WatchHotKey: "^(+c)"
Action:
PAUSE: 500
WIN-SEND-KEYS: "^(C)"
PAUSE: 500
MOUSE-MOVEW: 145 60
MOUSE-LBCLK
PAUSE: 500
\ в новом окне
WIN-SEND-KEYS: "^(V)"
)#

писал без вин, то ж не работат... не копит, не пастит...
Автор: volodyalipkin
Дата сообщения: 11.05.2004 01:28
roman78
А зачем так сложно? Причем здесь nnCron?
Автор: roman78
Дата сообщения: 11.05.2004 11:20
>А зачем так сложно?
ленивый я.

> Причем здесь nnCron?
крон - автоматизатор. вроде...
Автор: volodyalipkin
Дата сообщения: 11.05.2004 18:30
Может bat написать (типа move *.* .. ), а его вызывать из nnCron?
Автор: DJ makrus
Дата сообщения: 12.05.2004 12:23
chum2000
Сейчас, к сожалению, самому проверить работу твоей задачки у себя нет времени и возможности (полетел раздел диска на котором W2K стояла), попробуй убрать операторы вывода значения со стека на консоль - ".", сначала один, а затем другой, т. к. этот оператор забирает (а не копирует) значение со стека и соответственно записать его в переменную ты не можешь.

roman78
Правильно ли я понял, что к моменту вызова задачи необходимые файлы уже выделены, и заранее не известны пути папок?


Автор: strauss
Дата сообщения: 12.05.2004 14:28
chum2000

Убери две точки перед 'my_var !'.

CU
VK
Автор: 4get
Дата сообщения: 12.05.2004 17:38

Цитата:
Newsgroups: fido7.ru.nncron
From: Valery Kondakoff
Date: Wed, 21 Apr 2004 21:18:32 +0400
Subject:
ANN: тестовый билд nnCron 1.89-2

Hello, All!

Исправлены кое-какие ошибки найденные в релизе:

+ Belarussian readme and res-files are available (thanks to the
translator!)
* RunMissed + Time which specify range bug fixed;
* FILE-CROP: incorrect crop of NetWare files bug fixed;
* WatchResume from hibernate mode bug fixed.

http://www.nncron.ru/download/nncron189-2.exe

Потестируйте, плз! Если новых багов не обнаружим - перевыложим релиз 1.89.

Спасибо!

Цитата:
Newsgroups: fido7.ru.nncron
From: Valery Kondakoff
Date: Wed, 12 May 2004 15:24:12 +0400
Subject:
ANN: new nnCron plugin (ini.spf) is available for download

Hello, All!

Опубликован новый плагин nnCron ini.spf.

Описание: Специальные слова для считывания/записи ключей и значений в указанный
раздел ini-файлов.

http://www.nncron.ru/download/plugins/ini.spf
Автор: chum2000
Дата сообщения: 12.05.2004 17:54
strauss
Всё равно не работает. выводит 0, хотя taskmanager показывает обратное. вот описание из help:
#( test_proccpuusage1
\ раз в минуту выводим на консоль
\ загрузку процессорa процессом 'notepad.exe'
Action:
\ измеряем загрузку в течение 10 секунд
S" notepad.exe" 10000 (PROC-CPU-USAGE) . ." %" CR
)#
на консоль выводит верно, а вот так, чтобы в окошко не получается.
Автор: Den Ju
Дата сообщения: 13.05.2004 07:51
Здравствуйте господа!
Недавно столкнулся с задачей автоматизации неоего однообразного процесса и по поиску вышел на nncron, но так как опыта маловато прошу помочь полезными советами.
Задача такова:
Каждую ночь из разных городов мне приходят письма в почтовый ящик с архивами.
Каждое утро в 7:30 ( кроме выходных и праздников) необходимо подключаться к почтовому ящику pop3 и из писем пришедших за ночь (из разных городов) вытаскивать архивы, которые имеют вид ***_ddmm.arj (где *** - абревиатура города, Москва - MSK, ddmm -деньи месяц), причему читывая то, что после выходных надо проверять 3 архива с каждого города (за пятница, субботу, воскресенье) и складировать эти архивы в папку
c:\data\. Затем проверять наличие всех архивов из N-ого кол-ва городов и выдавать на экран сообщение: "Все данные в наличии" или "Отсутствуют данные из города Мухосранск за DDMM!!!"
Вот такая задачка!!!!
Заранее благодарен, пока стараюсь сам вникнуть в язык форт.
Спасибо!
Автор: n0xyl
Дата сообщения: 13.05.2004 08:01
скачал с оффсайта spktime.spf and sounds. что нужно сделать чтобы nncron произносила текущее время(каждый час)?
Автор: FATman
Дата сообщения: 13.05.2004 14:05
Подскажите отчаяному чайнику
Есть такая задачка, нужно перекидывать файлы с одного диска на другой. Следя при этом за их обновлением. Т.Е.
есть директория F:/home там два файла home1.dbf и home2.dbf. Их надо кидать в дирректорию c:/mdd перед этим надо проверить изменились ли файлы home1.dbf и home2.dbf в дирректории F:/home по сравнению с home1.dbf и home2.dbf в c:/mdd
Если изменились то, делаем следующее из c:/mdd перекидываем файлы home1.dbf и home2.dbf в c:/mdd/old (подстраховка чтобы если что можно было бы откатиться на них ручками) и из F:/home кидаем home1.dbf и home2.dbf в c:/mdd
Начал заниматься этим только сегодня, успехов почти нет. Может кто подскажет скриптик? Заранее спасибо
Автор: volodyalipkin
Дата сообщения: 13.05.2004 20:03
FATman


Код:
@echo off
fc /b file1 file2 > null
IF ERRORLEVEL 1 (echo 1) ELSE (echo 0)
Автор: FATman
Дата сообщения: 13.05.2004 20:52
To volodyalipkin

спасибо

Я честно говоря про bat не подумал, можно ведь и так.
Автор: volodyalipkin
Дата сообщения: 14.05.2004 05:35
New nnCron 1.89-3 test build (996) is available for download.

Changes:
+ new word IS-CD-PRESENT: <drv_letter>
* FILE-CROP is rewritten from the scratch
* bugfixes

nncron189-3.exe
Автор: FATman
Дата сообщения: 14.05.2004 07:00
вот посидел разобрался до такого уровня

код

Цитата:

#( MDO
WatchFile: "F:\home\home1.dbf"
Rule: QUERY: "Файл изменился"
Action:
StartIn: "C:\Program Files\nnBackup"
SWHide NormalPriority
START-APPW: "C:\Program Files\nnBackup\nnbackup.exe" -i "c:\mdd\HOME1.DBF" -o "c:\mdd\old"
START-APPW: "C:\Program Files\nnBackup\nnbackup.exe" -i "c:\mdd\HOME2.DBF" -o "c:\mdd\old"
START-APPW: "C:\Program Files\nnBackup\nnbackup.exe" -i "F:\home\HOME1.DBF" -o "c:\mdd\"
START-APPW: "C:\Program Files\nnBackup\nnbackup.exe" -i "F:\home\HOME2.DBF" -o "c:\mdd\"
)#

Не очень нравиться т.к. мне бы сравнить файлы по времени создания, и после этого уже кидать их по дирректориям. Может кто подскажет как IF'ом пользоваться? Какой у него синтаксис и можно ли его в Rule включить?
Автор: volodyalipkin
Дата сообщения: 14.05.2004 07:11
А в чём проблема с IF? Всё описано в документации.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Как писать кириллицей, а НЕ латиницей (транслитом)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.