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

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

Автор: unreal666
Дата сообщения: 10.11.2006 18:12

Цитата:
Теперь ума не приложу как проверить список средствами Крона

Проверить на что?

Цитата:
И как можно сделать чтоб перед запуском задачи выводилось Windows-окошко для выбора папки в которой нужно проверять имена фалов?

Скорее всего стандартный диалог вызывается каким-то API.
Спроси с теме про API.
Автор: daMIR
Дата сообщения: 10.11.2006 18:36

Цитата:
Проверить на что?

На соотвтсевие моим условиям Хочу узнать, если в названиях файлов русские символы, пробелы/запятые и т.п. Хочу убедится что в названиях фалов только латиница.
Саму эту проверку сделать не трудно, все английские символы находятся в узком диапазоне АСКИ-кодов. Но как сделать обратотку посимвольно Кроном???
(Знаю как на Паскале, но хотелось Кроном )

Добавлено:

Цитата:
Скорее всего стандартный диалог вызывается каким-то API.

Проблема в том что с АПИ я не работал, и не знаю как эту конструкцию вписывать в Крон...
Автор: unreal666
Дата сообщения: 10.11.2006 18:50
daMIR
Сравнение строк
S" твоя_строка" S" [^\x41-\x5A\x61-\x7A]" RE-MATCH
или
S" твоя_строка" S" [^a-zA-Z]" RE-MATCH
что одно и тоже.

Т.е. если в строке встретится любой символ, отличающийся от a-z или A-Z, то будет совпадение.
Автор: Stygis
Дата сообщения: 10.11.2006 19:42
daMIR
Можно использовать

Код: WIN-INPUT-TEXT: "caption_text" "prompt_text" "default_input_text" <time_in_sec>
Автор: daMIR
Дата сообщения: 10.11.2006 22:22
Спасибо всем! Работает Что получилось:
[more]#( test_filename1
NoActive
CREATE str1 50 ALLOT
Action:
FILESONLY
FOR-FILES: "E:\rabota\foto\12\mdb\2301\*"
RE-MATCH: "%FOUND-FULLPATH ONLYNAME%" "/[^a-zA-Z0-9\.\_\-\(\)]/"
IF
FILE-APPEND: "E:\43R\test.txt" "%FOUND-FULLPATH ONLYNAME%%crlf%"
THEN
;FOR-FILES
BEEP: 100 200
)#
[/more]
Проверят в именах файлов символы которые могут неккореткно отобразится в html

Цитата:
Не далее как на 65 странице приводилась инфа небольшая по библиотеке WinLib

Мне WinLib прикрутиь еще сложнее А кто работал с API в Кроне? Я уверен API-функция есть, а вот как ее использовать в Форте...
Автор: Stygis
Дата сообщения: 10.11.2006 22:37
daMIR

Код: WINAPI: <function_name> <dll_name>
Автор: griin
Дата сообщения: 14.11.2006 13:20
Перестали работать скрипты, срабатывающие на WatchDir.

Есть скрипт, который должен запускаться после того как в определенной папке, на сетевом диске, появился новый файл. Раньше скрипт срабатывал без проблем, сейчас, после того как сетевой диск переехал на другой сервер, если задачу запускаю вручную, то она срабатывает, а автоматом — нет. Сетевой диск находится на Win2003R2, скрипт запускается с параметром AsLoggedUser, пользователь, под которым я залогинен имеет полные права доступа к папке в которую смотрит WatchDir. Почему скрипт не срабатывае ума не приложу. Никто не знает, какие должны быть выставлены права доступа на папку, чтобы WatchDir работал?
Автор: NeeDiGeo
Дата сообщения: 19.11.2006 14:08
Товарищи стоит задача менять ключики в реестре, нашел решение, но пищит и ругается на последнюю строчку
REG-DELETE-VALUE: "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0001\UserInit"
REG-SZ: "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0001\UserInit" "AT+CGDCONT=1, "IP", "internet.beeline.ru""

Я так подозреваю, это все из-за большого количество кавычек, но без них нельзя. Может кто-нибудь что-нибудь посоветует?
Автор: Stygis
Дата сообщения: 19.11.2006 14:18
NeeDiGeo
Попробуй заменить кавычки, которые должны быть внутри строки, на %QUOTE%.
Автор: NeeDiGeo
Дата сообщения: 19.11.2006 19:25
Stygis
Спасибо!!! Помогло!!! Буду внимательнее смотреть справку...
Автор: West55
Дата сообщения: 21.11.2006 10:58
Извиняюсь за ламерский вопрос.
Делаю так:
#( Ping
Action:
2 0 DO
SWHide IdlePriority
START-APP: C:\p.cmd
PAUSE: 30000
LOOP
)#

Но почему-то p.cmd сначала запускается два раза в минуту, на следующую минуту один раз, потом опять два раза в минуту, т.е. так: 1.00 1.30 2.00 3.00 3.30 4.00 5.00 5.30

А, вообще, мне это нужно, чтобы не рвалось соединение. Это вроде можно через HOST-EXIST или NHOST_EXIST сделать? Не подскажите как?
Автор: daMIR
Дата сообщения: 21.11.2006 21:23
West55
У меня задача

#( Ping22
Action:
2 0 DO
GET-CUR-TIME
LOG: "log\idle.log" "%hh%:%mm%:%ss% - current time"
PAUSE: 30000
LOOP
)#
Работала нормально, в логе записи:
00:09:30 - current time
00:10:00 - current time
00:10:30 - current time
00:11:00 - current time
00:11:30 - current time
и т.д.
Я думаю твоя задача "не успевает" закончиться до того как Крон читает кронтаб. Т.е. задача еще выполнятеся, в то время как Крон ее уже успел в эту минуту прочитать.
Попробуй убрать цикл. Задача и так будет работать через каждые 30 сек.


Добавлено:
#( test
30000 TO PING-TIMEOUT
\ Установим тай-маут пинга в 30 сек
Rule: NHOST-EXIST: "hostname_or_ip_address" 1
\ Пингуем 1 раз. Если есть ответ делаем работу.
Action:
....
)#

Попробуй эту задачу.
А чем тебе не нравится условие WatchDisconnect ?

Добавлено:
З.Ы. Все это я только что вычитал из Хелпа....
Автор: West55
Дата сообщения: 22.11.2006 12:23
daMIR
Эта задачка
#( Ping22
Action:
2 0 DO
GET-CUR-TIME
LOG: "log\idle.log" "%hh%:%mm%:%ss% - current time"
PAUSE: 30000
LOOP
)#
у меня тоже пашет нормально.
А эта
#( Ping
30000 TO PING-TIMEOUT
Rule: NHOST-EXIST: "172.16.160.1" 1
Action:
)#
только раз в минуту.
Автор: Stygis
Дата сообщения: 22.11.2006 15:50
West55
Так она и должна работать раз в минуту 30 сек здесь - это таймаут пинга..
Я бы наверное сделал в теле задачи либо действительно циклом, либо дважды тело задачи и между телами - паузу.
Автор: daMIR
Дата сообщения: 22.11.2006 19:03
West55
Хех верно должно работать раз в минуту...
Если я правильно понимаю, проблема в том что сам пинг происходит не мгновенно, а в течении нескольких секунд. Кронтабы же читаются раз в минуту, и за эту минуту задачу необходимо закончить, чтоб в следующую начать заново
Отсюда мне кажется два возможных решения:
1. как сказал Stygis сделать в разделе Action: два пинга и между ними поставить паузу сек на 20.
2.Изменить мою в двух местах:
20000 TO PING-TIMEOUT
Rule: NHOST-EXIST: "172.16.160.1" 2

З.Ы. Третье забыл Попробуй в своей первой задаче с циклом, паузу опять-таки сократить до 20 сек. Хотя мне такой алгоримт не очень нравится... Несовсем изящно...
Автор: Stygis
Дата сообщения: 22.11.2006 19:36
daMIR

Цитата:
Кронтабы же читаются раз в минуту

Они не читаются раз в минуту, насколько я помню Они перечитываются только при изменении кронтабов. Но мин. промежуток, через который работают задачи - 1 минута....

Собственно как твоя задача бу работать:
1. Если ответа не будет:
00:01:00 - пинг №1
00:01:00-00:01:30 ждем ответ
00:01:30 - пинг №2
00:01:30-00:02:00 ждем ответ
00:02:00 - запускаем задачу еще раз
2. Если будет ответ на пинг:
00:01:00 - пинг №1
00:01:02 - получили ответ и сразу
00:01:03 - пинг №2
00:01:05 - получили ответ на пинг №2
00:01:06-00:02:00 ждем начала новой задачи

А такой механизм может не совсем подойдет West55 - это ему надо самому смотреть
Автор: NeeDiGeo
Дата сообщения: 23.11.2006 09:24
Хлопцы. Стоит задача по горячей клавише сдвигать год системной даты на один назад. Подскажите как, наверно api. Если кто знает нарисуйте листинг плиз Спасибо.
Автор: AnxiousPretzel
Дата сообщения: 23.11.2006 13:10
Доброго времени суток вам.
Есть задачка, не знаю как с ней справиться. Надеюсь на вашу помощь.
На диске D есть n-ое количество папок вида: гггг-мм-дд т.е.
2006-09-01
2006-09-02
...
2006-09-30
2006-10-01
2006-10-02
...
2006-10-31
и т.д.
Мне нужно найти самую старую папку, определив это именно по имени папки, а затем удалить ее.
Вот такая вот задачка. Жду вашей помощи. Smile
Автор: NeeDiGeo
Дата сообщения: 23.11.2006 19:27
Все уже не надо нашел способ!!! Если кому интересно

Action:
StartIn: "C:\temp"
SWHide
START-APPW: cmd.exe /c echo %DD%-%MM%-05 | date
\ тут то пишется, что деляется во время действия "неправильной даты"
StartIn: "C:\temp"
SWHide
START-APPW: cmd.exe /c echo %DD%-%MM%-06 | date
Автор: DSW
Дата сообщения: 30.11.2006 09:21
Задача: Необходимо мониторить определенный сетевой каталог на предмет ПОЯВЛЕНИЯ НОВЫХ файлов, либо ИЗМЕНЕНИЯ уже находящихся там файлов и в зависимости от маски появившегося, либо изменившегося файла КОПИРОВАТЬ его куда-либо (т.е. сам файл оставить на месте и потом (если он не изменится) на него уже не реагировать).

Просто ВООБЩЕ не понимаю (тугодум наверно) КАК это сделать в nncron.

Если можно как-то быстро помочь - то большое ПОЖАЛУЙСТА (задача горит).
Автор: ALEF
Дата сообщения: 30.11.2006 12:55
как работает слово FILE?
как можно узнать об этом?
Автор: Stygis
Дата сообщения: 30.11.2006 13:07
ALEF
nnCron - помощь
FILE: считывает весь файл.
За подробностями - в исходники nnCron.
Автор: ALEF
Дата сообщения: 30.11.2006 13:14
Stygis
наверно я не так ищу в хелпе крона, как ты нашел его там?

Добавлено:
вот, я нашел об этом в разделе "неотложная помощь", но как это найти не перелистывая весь хелп?

Добавлено:
теперь не могу найти ZPLACE
Автор: Stygis
Дата сообщения: 30.11.2006 13:19
ALEF
Там есть же поиск по файлу помощи Индекс
А я так вообще раархивировал файл помощи и ищу по нему если что как по обычным файлам
Автор: ALEF
Дата сообщения: 30.11.2006 13:23
про ZPLACE там нету.
Stygis
скажи чем ты распаковал его?
Автор: Stygis
Дата сообщения: 30.11.2006 13:29
ALEF
Да то ли раром, то ли 7зипом.
Кста, скачай помощь по SPForth - там список функций, может там найдешь, что нада.
Автор: Snegov1k
Дата сообщения: 30.11.2006 14:04
Доброго времени суток.
Есть такая проблемма - пытаюсь запустить через nnCron 1с в режиме конфигуратора.
т.е. в *.bat это выглядит так
C:\PROGRA~1\1Cv77\BIN\1cv7.exe CONFIG /D"W:\ПУТЬКБАЗЕ\"

Ругается - говорит что нет такого пути.

запускаю *.bat файл - не вопрос, загружается.

Пытаюсь вызвать nnCron'ом *.bat файл с этой командой - та же петрушка, не дает запустить - говорит путь не найден.
Даже если пытаюсь все это запустить скриптом, встроенным в nnCron - все равно пишет путь не найден и АБСОЛЮТНО ПРАВИЛЬНЫЙ путь.

В чем может быть загвоздка?

Заранее спасибО!
Автор: ALEF
Дата сообщения: 30.11.2006 14:16
Snegov1k
W: - у тебя сетевой видать, поставь в задаче параметр AsLoggedUser
а иначе задача стартует от имени SYSTEM, который по заверениям Майкрософт в сеть ходить никак не может.

А зачем бат файл?
лучше вписать в задачу

START-APP: C:\PROGRA~1\1Cv77\BIN\1cv7.exe CONFIG /D"W:\ПУТЬКБАЗЕ\"
\ после запуска 1С оставшаяся часть задачи продолжит выполняться

или так

START-APPW: C:\PROGRA~1\1Cv77\BIN\1cv7.exe CONFIG /D"W:\ПУТЬКБАЗЕ\"
\ оставшаяся часть задачи не выполнится, пока не закроется запущенная 1С
Автор: Snegov1k
Дата сообщения: 30.11.2006 15:01
ALEF спасибО! Да я и так и так пытался, даже на js
так же задачу решил Valery_Kondakoff на форуме http://www.nncron.ru/forums/viewtopic.php?p=7056#7056, за что ему отдельное спасибо!

Добавлено:
Еще вопрос, что то никак не могу понять как настроить совсем простую вещи - выполнение чего либо ( скрипта о котором говорил выше) после появления определенного файла. Т.е.

RULE: FILE-EXIST: "C:\1.txt"

<......................
текст
........................>
и выполняется вне зависимости от того есть файл или нет
Автор: ALEF
Дата сообщения: 30.11.2006 18:46
приведи текст задачи подробней, с заголовком и всеми правилами

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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