Обсуждение программ nnCron и nnCron LITE
by andrystepa » Thu, 28 Aug 2014, 14:29
У меня стоит Windows 7 x32. Возникла задача: когда в каталог e:\distrib записывается новый файл (в моем случае туда должен загружаться новый каталог software с файлами внутри), должен запускаться командный файл, который переносит каталог software в другое место. Я создал задачу, запускающую командный файл catalog.cmd когда изменяется каталог e:\distrib: - Code: Select all
User: "Admin" SecPassword: "g8i4jcas" Domain: "ADMIN-PC" LogonInteractive WatchDir: "E:\Distrib" WATCH-CHANGE-LAST-WRITE Action: StartIn: "I:\CMD" ShowNormal NormalPriority START-APP: I:\CMD\catalog.cmd
Но при запуске файла catalog.cmd возникает ошибка 1314: - Code: Select all
15:05:56 2884 TASK: Catalog 15:05:56 2884 Start: I:\CMD\catalog.cmd 15:05:56 2884 Start result: 1314 15:06:00 3920 TASK: Catalog 15:06:00 3920 Start: I:\CMD\catalog.cmd 15:06:00 3920 Start result: 1314
Причем дважды подряд. Я так понимаю прав не хватает. Но я же от Администратора запускаю!
-
andrystepa
-
- Posts: 5
- Joined: Thu, 28 Aug 2014, 14:16
by VoidVolker » Thu, 28 Aug 2014, 14:47
ннКрон запущен как приложение или как сервис? Без авторизации отрабатывает?
-

VoidVolker
- Site Admin
-
- Posts: 2930
- Joined: Tue, 25 Apr 2006, 17:56
by elos » Thu, 28 Aug 2014, 15:29
andrystepa wrote:Причем дважды подряд. Я так понимаю прав не хватает. Но я же от Администратора запускаю!
Двойное срабатывание возможно лечится с помощью SingleInstance, но мы не знаем, что делает catalog.cmd с файлом (может он повторно и "трогает" файл)... И авторизация задачи в данном случае важна? Имеем сетевые пути в задаче?
"Везение" - это результат тщательной подготовки, "невезение" - следствие разболтанности и лени. - Роберт Хайнлайн Хорошо сформулированный вопрос отпадает сам собой.
-
elos
-
- Posts: 674
- Joined: Tue, 25 Apr 2006, 11:15
-
by andrystepa » Thu, 28 Aug 2014, 15:57
nncron запущен как приложение. Я пробовал вместо запуска файла выводить сообщение - все работало. Попробовал запустит командный файл сам, из командной строки - отказ в доступе! Причем простое копирование с последующим удалением срабатывает, только подтверждать надо. То есть такой файл: - Code: Select all
set TO=I:\CMD set VDATE=%date:~-10% xcopy /e e:\Distrib\software %TO%\%VDATE% rd /s/Q e:\Distrib\software
Работает без проблем, только xcopy требует выбрать, что копировать - файл или каталог. А вот такой командный файл: - Code: Select all
set TO=I:\CMD set VDATE=%date:~-10% move /Y e:\Distrib\software %TO%\%VDATE%
Работать не хочет - отказ в доступе. Более того, даже команда move /Y e:\Distrib\software I:\CMD\28.08.2014 запущенная из командной строки отказывается работать! Видими есть какие-то ограничения на использование команды move.
-
andrystepa
-
- Posts: 5
- Joined: Thu, 28 Aug 2014, 14:16
by andrystepa » Thu, 28 Aug 2014, 16:02
Я думаю двойное срабатывание из-за того, что в каталоге software 2 файла. Возможно срабатывает на запись каждого файла, а не каталога целиком.
-
andrystepa
-
- Posts: 5
- Joined: Thu, 28 Aug 2014, 14:16
by elos » Thu, 28 Aug 2014, 18:01
Тест авторизации проходит по кнопке в закладке задачи? Профиль грузить пробовал?
Далее повтор вопросов: Без авторизации отрабатывает? Диск I: мапленый? Сетевой путь есть в задаче? (Что-то буквы дисков великоваты для локальных... Хотя есть любители поставить диска четыре, каждые с несколькими разделами)
А руками команду с абсолютными путями (без подстановок) выполняет? Если для запуска руками отказ - разбираться с правами однозначно, на путь или на папку.
Что-то гадать начинаем... Полные тексты задачи и используемых внутри файлов выкладывать надо. И подробно всё описывать.
"Везение" - это результат тщательной подготовки, "невезение" - следствие разболтанности и лени. - Роберт Хайнлайн Хорошо сформулированный вопрос отпадает сам собой.
-
elos
-
- Posts: 674
- Joined: Tue, 25 Apr 2006, 11:15
-
by ANR Daemon » Thu, 28 Aug 2014, 23:19
andrystepa wrote:У меня стоит Windows 7 x32. Возникла задача: когда в каталог e:\distrib записывается новый файл (в моем случае туда должен загружаться новый каталог software с файлами внутри),
Надеюсь, вы понимаете, что ваша задача будет запускаться столько раз, сколько файлов вы запишете в этот каталог?
-
ANR Daemon
-
- Posts: 234
- Joined: Mon, 26 Feb 2007, 22:59
by andrystepa » Fri, 29 Aug 2014, 08:25
elos wrote:Тест авторизации проходит по кнопке в закладке задачи? Профиль грузить пробовал?
Далее повтор вопросов: Без авторизации отрабатывает? Диск I: мапленый? Сетевой путь есть в задаче? (Что-то буквы дисков великоваты для локальных... Хотя есть любители поставить диска четыре, каждые с несколькими разделами)
А руками команду с абсолютными путями (без подстановок) выполняет? Если для запуска руками отказ - разбираться с правами однозначно, на путь или на папку.
Что-то гадать начинаем... Полные тексты задачи и используемых внутри файлов выкладывать надо. И подробно всё описывать.
Читайте мой предыдущий пост внимательно - там все подробно описано. А то, что буквы великоваты для локальных - у меня стоит 2 операционки, каждая на своем диске. Тест авторизации проводил - все в порядке. Как я уже писал, командный файл с move не работает и с авторизацией и без авторизации и просто запуском из командной строки руками. Более того, как я уже писал выше, даже введенная руками в консоли команда move /Y e:\Distrib\software I:\CMD\28.08.2014 завершается отказом в доступе. Я поискал в сети - не у одного меня проблема с move, и решений ее пока не нашел. Даже если консоль запустить от администратора - все равно не работает. Сетевых путей в задаче нет - все копируется с локального диска на локальный диск. А вот файл, где команда move заменена на xcopy + rd работает и с авторизацией и без авторизации. Вот только у хcopy есть один недостаток - она всегда спрашивает что копировать - файл или папку. А мне надо чтобы все это делалось без участия человека.
-
andrystepa
-
- Posts: 5
- Joined: Thu, 28 Aug 2014, 14:16
by VoidVolker » Fri, 29 Aug 2014, 08:46
andrystepa wrote:А вот файл, где команда move заменена на xcopy + rd работает и с авторизацией и без авторизации. Вот только у хcopy есть один недостаток - она всегда спрашивает что копировать - файл или папку. А мне надо чтобы все это делалось без участия человека.
- Code: Select all
FILE-MOVE: "c:\xxx\test.txt" "c:\xxx\new.txt" FILE-MOVE: "c:\xxx\test.txt" "d:\backup\test.txt" \ перемещаем файл test.txt в каталог c:\yyy\ FILE-MOVE: "c:\xxx\test.txt" "c:\yyy\" \ перемещаем файл test.txt в файл backup FILE-MOVE: "c:\xxx\test.txt" "c:\backup"
-

VoidVolker
- Site Admin
-
- Posts: 2930
- Joined: Tue, 25 Apr 2006, 17:56
by andrystepa » Fri, 29 Aug 2014, 09:00
Я нашел другой способ - команда robocopy - очень удобная и полезная замена как xcopy, так и move. Вот такой командный файл перемещает папку со всеми подпапками в новую папку: - Code: Select all
set TO=I:\CMD set VDATE=%date:~-10% robocopy /E /MOVE e:\Distrib\software %TO%\%VDATE%
Вот только теперь вопрос - как сделать, чтобы моя задача реагировала на копирование в папку E:\Distrib только один раз - в конце копирования.
-
andrystepa
-
- Posts: 5
- Joined: Thu, 28 Aug 2014, 14:16
by VoidVolker » Fri, 29 Aug 2014, 11:58
- Code: Select all
#( Задача_104129082014 \ NoActive : Dir2Watch S" E:\Distrib\*" ; \ В конце - маска файлов : Dir2Move S" I:\CMD\%DD%.%MM%.%YYYY%\" ; \ Слэш на конце обязателен CREATE current_dest 256 ALLOT SingleInstance Action: \ ." STARTED Задача_104129082014" CR BEGIN \ ." >>>" CR Dir2Move EVAL-SUBST \ Вычисляем подстроки 2DUP DIR-CREATE \ Создаем структуру каталогов current_dest PLACE \ Запоминаем получившийся путь
RECURSIVE TODEPTH Dir2Watch FOR-FILES \ Создаем каталоги в каталоге назначения IS-DIR? IF current_dest COUNT FOUND-RELPATH S+ \ ." DIR-CREATE: " 2DUP TYPE CR DIR-CREATE THEN ;FOR-FILES RECURSIVE TODEPTH FILESONLY Dir2Watch FOR-FILES \ Перенос файлов \ ." FMOVE: " FOUND-FULLPATH \ 2DUP TYPE ." -> " current_dest COUNT FOUND-RELPATH S+ \ 2DUP TYPE CR FMOVE ;FOR-FILES RECURSIVE TODEPTH Dir2Watch FOR-FILES \ Удаление исходных каталогов IS-DIR? IF \ ." FMOVE: " FOUND-FULLPATH TYPE CR FOUND-FULLPATH DIR-DELETE THEN ;FOR-FILES \ CR 60000 PAUSE \ Пауза AGAIN )#
-

VoidVolker
- Site Admin
-
- Posts: 2930
- Joined: Tue, 25 Apr 2006, 17:56
Return to nnCron forum (Russian)
Who is online
Users browsing this forum: No registered users and 2 guests
|
|