WatchFile?

Обсуждение программ nnCron и nnCron LITE

WatchFile?

Postby Crew » Mon, 22 Apr 2013, 21:16

Стояло нормально работало всё на Win7 х64. После создания\появления указанного файла моментально отрабатывал скрипт.
Проапгрейдил комп и соответственно переустановил винду. И появился какой-то глюк.
Если сохранять файл (картинку, документ и т.д.) из браузера, фара, просто cmd файла и т.д., то скрипт нормально отрабатывает.
НО! Если то-же самое сделать из rss-ридера (RSS OWL), то скрипт отрабатывает через раз или не отрабатывает вообще. Т.е файл может спокойно лежать в заданной папке до тех пор, пока я вручную не запущу скрипт. Только тогда скрипт нормально отрабатывает.
Понимаю, что фигня какая-то, но может подскажет кто в каком направлении копать?

PS: До переустановки винды всё работало нормально и с этим же rss-клиентом.

PPS: Что интересно! Задача нормально отрабатывает если в эту же папку сохранить второй файл. При этом задача оставляет второй файл в папке, и выполняет все действия над первым файлом. И так по кругу:

- сохраняешь 3-й файл, второй обрабатывается, а третий остаётся;
- сохраняешь 4-й файл, третий обрабатывается, а четвёртый остаётся и т.д.

Последний файл может лежать сколь угодно долго.
Crew
 
Posts: 41
Joined: Wed, 07 Mar 2007, 00:27

Re: WatchFile?

Postby elos » Tue, 23 Apr 2013, 00:08

К вопросу обычно задачу прикладывают...
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: WatchFile?

Postby Crew » Tue, 23 Apr 2013, 19:47

Ну вот хотя бы такой вариант. Без лишних проверок на имена совпадение имён файлов, размер и т.д.
Единственное что - поставил в начале скрипта проверку "а отрабатывается ли вообще скрипт" (BALLOON:) - проверка отрабатывает каждый раз при создании файлов. А вот последующие действия - крайне "неохотно". :(


Code: Select all
#( test1
SET CURDATE1=%YYYY%.%MM%.%DD%

WatchFile: "e:\export\*.*"
Action:
BALLOON: "Test" "Passed"
FOR-FILES: "e:\export\*.*"

     DIR-CREATE: "E:\My Documents\Pict\test\%CURDATE1%"
     CLIPBOARD: "http://crewdk.ru/test/%CURDATE1%/%FOUND-FILENAME%"
     FILE-MOVE: "%FOUND-FULLPATH%" "E:\My Documents\Pict\test\%CURDATE1%"
          BALLOON: "Test" "Новая ссылка в буфере %CLIPBOARD%"
     FILE-APPEND: "E:\My Documents\Pict\test\test.log" "%crlf%%CUR-DATE DATE>S% - Новая ссылка в буфере %CLIPBOARD%"    

;FOR-FILES
)#
Crew
 
Posts: 41
Joined: Wed, 07 Mar 2007, 00:27

Re: WatchFile?

Postby AlikasS » Wed, 24 Apr 2013, 04:11

используй
Code: Select all
WatchDir: "e:\export\"
WATCH-CHANGE-LAST-WRITE

ибо
Spoiler: show
Слова WatchFile:/WatchFileDelete: могут работать и с масками файлов, правда с одной оговоркой: они ищут в указанном каталоге первый подходящий по маске файл и только для первого найденного файла делают проверку на появление/изменение/удаление. Т. е. если в каталоге уже есть файл, удовлетворяющий заданной маске, то WatchFile:/WatchFileDelete: могут не сработать при появлении/изменении/удалении следующего, подпадающего под эту же маску файла.

\ --------------------------
цитата из хелпа
Вы можете использовать слово SET в любом месте кронтаба, но обязательно вне рамок описания зада

подправь в задаче, возможно не критично, но фиг его знает...
\ --------------------------
Crew wrote:PPS: Что интересно! Задача нормально отрабатывает если в эту же папку сохранить второй файл. При этом задача оставляет второй файл в папке, и выполняет все действия над первым файлом. И так по кругу:
- сохраняешь 3-й файл, второй обрабатывается, а третий остаётся;
- сохраняешь 4-й файл, третий обрабатывается, а четвёртый остаётся и т.д.
Последний файл может лежать сколь угодно долго.

странно, FOR-FILES: должен пройтись по всем найденным файлам
SKIPERRORS попробуй, с выводом через сообщение какой файл обрабатывается,
возможно файл занят др.программой, тогда надо ждать пока она его отпустит, на этот случай есть решения на форуме
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: WatchFile?

Postby Crew » Wed, 24 Apr 2013, 06:48

Спасибо. Сегодня попробую.
Crew
 
Posts: 41
Joined: Wed, 07 Mar 2007, 00:27

Re: WatchFile?

Postby elos » Wed, 24 Apr 2013, 09:35

Слова WatchFile:/WatchFileDelete: могут работать и с масками файлов, правда с одной оговоркой: они ищут в указанном каталоге первый подходящий по маске файл и только для первого найденного файла делают проверку на появление/изменение/удаление. Т. е. если в каталоге уже есть файл, удовлетворяющий заданной маске, то WatchFile:/WatchFileDelete: могут не сработать при появлении/изменении/удалении следующего, подпадающего под эту же маску файла.

При написании скриптов пользительно перечитывать help. Даже если помнишь основные слова - детали их работы могут вылетать из памяти.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: WatchFile?

Postby Crew » Wed, 24 Apr 2013, 18:25

Дело в том, что в указанной папке, при нормальной работе задачи, не должно быть вообще больше одного файла за раз.
То, что я описал, что задача срабатывает только при создании второго файла в заданной папке - одно из досадных следствий того, что скрипт не работает так, как я хочу.
Crew
 
Posts: 41
Joined: Wed, 07 Mar 2007, 00:27


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest

cron