Ошибка при использовании SET

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

Ошибка при использовании SET

Postby aximus » Fri, 24 Sep 2010, 12:03

Windows 7 Enterprise
NNCron 1.93b10 Build 1141 03.12.2009, английский язык

Запускается как приложение

Если в кронтаб я добавляю объявление какой-либо SET начинает выдаваться ошибка

---------------------------
nnCron
---------------------------
GUI-APP: Internal error. Error # -1073741819
---------------------------
OK
---------------------------
в лог пишется тоже самое, а в nncron.out -

About 1.93b10 Build 1141 03.12.2009
EXCEPTION! CODE:C0000005 ADDRESS:4B2298 WORD:@ REGISTERS:
2D9ED14 74 00 03 04 0C 00 00 00 08 00 00 00 5A C6 4D 00 t...........Z╞M.
2D9ED24 00 00 00 00 08 00 00 00 F4 FD D9 02 98 22 4B 00 ........Ї¤┘.Ш"K.
2D9ED34 1B 00 00 00 02 02 01 00 5C EF D9 02 23 00 00 00 ........\я┘.#...
USER DATA: 4030074 HANDLER: 2D9EF94 RETURN STACK:
2D9EF5C : 50059B V$FREE
2D9EF60 : 5121DB free-Xbuff
2D9EF64 : 512B32 JenXFREE
2D9EF68 : 4DC68C >ENV
2D9EF6C : 4B2DF4 (LocalsExit)
2D9EF70 : 8 <not found>
2D9EF74 : 0 <not found>
2D9EF78 : 512B2D JenXFREE
2D9EF7C : 4DC86D ALL>ENV
2D9EF80 : 4ED05D (START-APP)
2D9EF84 : 0 <not found>
2D9EF88 : 4ED2AB START-APP
2D9EF8C : 507BA4 GUI-APP
2D9EF90 : 4B4E78 CATCH
2D9EF94 : 0 <not found>

Эта ошибка появляется при попытке вызова любого пункта из контекстного меню nnCron, который должен показать какое-либо окно (About, New Task, Options etc)

например, такой код я добавляю в кронтаб

SET CurrDate="%YYYY%-%MM%-%DD%"
SET ProgramFolderC="C:\Program Files\"
SET ProgramFolderZ="Z:\Program Files\"

этот код присутствует только в одном кронтабе. Убираю код - всё нормализуется
aximus
 
Posts: 6
Joined: Fri, 24 Sep 2010, 11:12

Re: Ошибка при использовании SET

Postby elos » Fri, 24 Sep 2010, 13:24

SET вне рамок описания задачи, надеюсь?
elos
 
Posts: 667
Joined: Tue, 25 Apr 2006, 11:15

Re: Ошибка при использовании SET

Postby aximus » Fri, 24 Sep 2010, 13:42

да, конечно
на nncron 1.89 на WinXP эти же скрипты работают отлично

перешёл на работе на Win7, пришлось обновить версию nnCron и появились такие проблемы
aximus
 
Posts: 6
Joined: Fri, 24 Sep 2010, 11:12

Re: Ошибка при использовании SET

Postby aximus » Tue, 28 Sep 2010, 13:04

В Win 2008R2 тоже самое
aximus
 
Posts: 6
Joined: Fri, 24 Sep 2010, 11:12

Re: Ошибка при использовании SET

Postby AlikasS » Tue, 28 Sep 2010, 16:32

не подтверждается на
nncron.exe v 1.93b10 Build 1141 03.12.2009
ПРИЛОЖЕНИЕМ, контроль UAC отключен, юзер админ
tm.exe v 1.93b10 Build 569 03.12.2009
Directory: C:\Windows\System32\config\SYSTEM~1\AppData\Roaming\nnCron
Windows 7 RUS ULTI

в кронтабе код
Code: Select all
<%
SET WEEKDAY=%WD%
%>
исправно отрабатывает,
через procexp.exe
видно новую локальную переменную окружения
P.S. попробуй
Code: Select all
S" %WD%" EVAL-SUBST S" WEEKDAY" SETENV THROW
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Ошибка при использовании SET

Postby aximus » Tue, 28 Sep 2010, 17:19

А случаем нет ли какого ограничения на число переменных на один кронтаб?
когда у меня одна переменная - всё путём, как только добавляю ещё одну в тот же файл - ошибка появляется
aximus
 
Posts: 6
Joined: Fri, 24 Sep 2010, 11:12

Re: Ошибка при использовании SET

Postby elos » Tue, 28 Sep 2010, 19:42

Может таб проблемный выложишь?

Дальше мои бурные фантазии, ибо никогда про это не задумывался раньше...
Такое ощущение, что или идёт "пересечение" слов, когда идёт подмен смыслов (например, процедура перезаписана константой с таким же именем), или задача не находит пути, указанного в set. Если приглядеться к выводу стека возвратов, то видно что должно что-то запуститься, но не получилось.
elos
 
Posts: 667
Joined: Tue, 25 Apr 2006, 11:15

Re: Ошибка при использовании SET

Postby aximus » Wed, 29 Sep 2010, 10:04

я выложил проблемный кронтаб и ini файл (вставил заглушки вместо паролей на текущего пользователя)
http://bit.ly/cWhC4H
пароль nncron

Самое странное, что тоже самое отлично работает на winXP в 1.89 nncron
aximus
 
Posts: 6
Joined: Fri, 24 Sep 2010, 11:12

Re: Ошибка при использовании SET

Postby elos » Wed, 29 Sep 2010, 14:18

Надо, наверное, таки проделать рекомендуемое.
ini-файл различается у нас только авторизацией. Так как крон под семёркой я ещё не удосужился корректно запустить (только "убил" до появления аналогичной ошибки GUI-app вставкой твоего таба - уборка таба приводит к нормальной работе крона), то говорить буду теоретически...

Что меня смущает в фрагменте
Code: Select all
<%
SET CurrDate="%YYYY%-%MM%-%DD%"
SET ProgramFolderC="C:\Program Files (x86)\"
SET BackupFolder="C:\SkyDrive\Backup\Work\%CurrDate%\"
SET RarPath="%QUOTE%%ProgramFolderC%WinRAR\Rar.exe%QUOTE% a -av -m5 -r -s -t -v49m"
%>

#( Backup_DevInfo
AsLoggedUser
\ запускаем задачу в пятницу раз в день

Time: 00 15 * * 5 *

Action:
DIR-CREATE: "%BackupFolder%"
MSG: "%CurrDate%"

\ Указываем в какой каталог проводить архивацию и создаём его
DIR-CREATE: "%BackupFolder%"
StartIn: "%BackupFolder%"
...
так это путь
SET ProgramFolderC="C:\Program Files (x86)\"
Ну не встречал я в установленной винде такого пути по умолчанию. Могу предположить, что твикером в XP можно поменять родной путь по умолчанию Program Files на Program Files (x86) - чтобы различать, допустим, папки операционок различной битности. (И то, это же надо папку создать, в неё откопировать исходное, перестроить пути...) Под Win7 пока не встречал такого (под рукой только Ultimate Windows Tweaker v.2.1).

Остальное бросается в глаза и к ошибке не относится:

Зачем два раза создавать папку %BackupFolder% ? Перепроверил - ошибок это не вызывает в программе, но вызывает недоумение у меня.

%CurrDate% запоминает дату, которая потом используется только в двух местах. Может "ну его" первый сет, а в BackupFolder просто прописать время напрямую (из значения первого сета)?

Всё (почти) стартует через START-APP:. Как будет работать regedit (он два раза стартует в скрипте, по времени это будет почти одномоментно), если возможна работа только одной его копии?

Только Skype на время архивации "прибивается". А остальные программы позволяют делать со своими файлами архивирование без проблем (особенно FlashGet и QIP)?

На этом всё.

P.S. Кстати, SET даже в помощи пишут вне рамок<% %>. Переставил крон вчистую в папку C:\nncron, вставил усеченный таб (только одно MSG:) и set-ы вне скобок <% %> - не помогло! Надо по рецепту AlikasS пробовать.
elos
 
Posts: 667
Joined: Tue, 25 Apr 2006, 11:15

Re: Ошибка при использовании SET

Postby aximus » Wed, 29 Sep 2010, 16:05

Ну не встречал я в установленной винде такого пути по умолчанию.


Это путь в 64-битных машинах. Я сейчас на Win2008 R2, а она только 64 бита, но все проблемы такие же как и на Win7 Enterprise 32-бит


Зачем два раза создавать папку %BackupFolder% ? Перепроверил - ошибок это не вызывает в программе, но вызывает недоумение у меня.

это описка, уберу

%CurrDate% запоминает дату, которая потом используется только в двух местах. Может "ну его" первый сет, а в BackupFolder просто прописать время напрямую (из значения первого сета)?

ну как вариант оптимизации

Всё (почти) стартует через START-APP:. Как будет работать regedit (он два раза стартует в скрипте, по времени это будет почти одномоментно), если возможна работа только одной его копии?

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

Только Skype на время архивации "прибивается". А остальные программы позволяют делать со своими файлами архивирование без проблем (особенно FlashGet и QIP)?


Да, с остальными всё в порядке. Только Skype держит файлы и не даёт их архивировать рару

Кстати, SET даже в помощи пишут вне рамок<% %>.

Я тоже писал без скобок, но на форуме увидел и подумал что поменяли синтаксис и из-за этого выдаётся ошибка.


Кстати, разнёс переменные по разным кронтабам вроде всё запускается, но не выполняется ничего и все dos комманды имеют код возврата 740

Прописывал и LoadProfile и юзера указывал - только 740 код возвращается
aximus
 
Posts: 6
Joined: Fri, 24 Sep 2010, 11:12

Re: Ошибка при использовании SET

Postby AlikasS » Thu, 30 Sep 2010, 03:30

AlikasS wrote:...P.S. попробуй
Code: Select all
S" %WD%" EVAL-SUBST S" WEEKDAY" SETENV THROW

юзай
Code: Select all
<%
\ SET CurrDate="%YYYY%-%MM%-%DD%"
\ SET ProgramFolderC="C:\Program Files (x86)\"
\ SET BackupFolder="C:\SkyDrive\Backup\Work\%YYYY%-%MM%-%DD%\"
\ SET RarPath="%QUOTE%%ProgramFolderC%WinRAR\Rar.exe%QUOTE% a -av -m5 -r -s -t -v49m"
 S" %YYYY%-%MM%-%DD%" EVAL-SUBST S" CurrDate" SETENV THROW
 S" C:\Program Files (x86)\" EVAL-SUBST S" ProgramFolderC" SETENV THROW
 S" C:\SkyDrive\Backup\Work\%CurrDate%\" EVAL-SUBST S" BackupFolder" SETENV THROW
 S" %QUOTE%%ProgramFolderC%WinRAR\Rar.exe%QUOTE% a -av -m5 -r -s -t -v49m" EVAL-SUBST S" RarPath" SETENV THROW
%>
видимо в слове SET где-то ошибка
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Ошибка при использовании SET

Postby Headcrab » Tue, 25 Feb 2014, 11:25

Подтверждаю, в версии v 1.93b10 Build 1141 есть какой то косяк с переменными.

только что обновился с версии v 1.93b3 до ..b10 и словил на старых табах вот такую ошибку - GUI-APP: Внутренняя ошибка. Error # -1073741819
такая ошибка выходит при попытке открытия любого пункта в меню ннКрона (Параметры, Помощь,,,, О Программе).

Методом исключения выяснил что виноваты локальные переменные. Если их количество больше чем одна то возникает ошибка.

Для примера приведу свои переменные:
Code: Select all
SET ArchDir="D:\Work\Tools\archivers"
SET SVK_IN_PLAT="D:\Work\Mailboxes\SVK\Incoming\Plat"
SET SVK_IN_INFO="D:\Work\Mailboxes\SVK\Incoming\Info"
SET CFT_IN_LEG="Q:\windows\clean\REP"

Любая из них по отдельности работает нормально, но только стоит добавить ещё одну то ошибка.

Подскажите есть лечение этого недуга? В данный момент просто ушёл от использования переменных.

ps: nnCron работает на Windows server 2008
Headcrab
 
Posts: 19
Joined: Fri, 21 Feb 2014, 14:05

Re: Ошибка при использовании SET

Postby AlikasS » Thu, 27 Feb 2014, 02:46

Headcrab wrote:Подскажите есть лечение этого недуга? В данный момент просто ушёл от использования переменных.

попробуй как я показывал выше
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 5 guests