CronScript.spf, код для ключа -runfile прямо в тексте задачи

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

CronScript.spf, код для ключа -runfile прямо в тексте задачи

Postby AlikasS » Sun, 12 Jun 2011, 16:42

Code: Select all
\ File:         CronScript.spf
\ http://nncron.ru/forums/viewtopic.php?f=5&t=10950
\ Author:       AlikasS
\ Date:        22.12.10
\ Modified: 2011 06 16 11 54 +1100 AlikasS,
\ после выполнения кода с CronScript-EVAL-ON, выполняется слово CronScript-EVAL-OFF (выключение обработки %%)
\ Modified: 2011 10 11 06 32 +1100 AlikasS,
\ рабочие временные файлы вынесены в доступный каталог
\ Modified: 2012 02 29 13 05 +1100 AlikasS,
\ рабочие временные файлы вынесены повторно в доступный каталог
\
\ Words: <CronScript> </SCRIPT> CronScript-EVAL-OFF CronScript-EVAL-ON
\
\ Usage:
\ <CronScript> <команды крона> </SCRIPT>
\
\ Settings:
\ CronScript-EVAL-ON / CronScript-EVAL-OFF - для включения/выключения обработки переменных nncron между знаками %% в тексте команд
\
\ Description:
\ 1. Позволяет писать код для исполнения его отдельным процессом крона по ключу -runfile прямо в тексте задачи
\ Action:
\ <CronScript>
\ : main 1000 PAUSE MSG: "исполняем код" ;
\ </SCRIPT>
\
\ 2. CronScript-EVAL-ON - для включения возможности использоваться макро-переменные nnCron,
\ окруженные с двух сторон знаками процента (%).
\
\ 3. CronScript-EVAL-OFF - (по умолчанию) %% не обрабатываются.

0 [IF]   \ this is a comment string

Example:

#( ~test-start-bat
AsLoggedUser
NoActive
Action:
<CronScript>
: main
MSG: "скрипт крона"
;
</SCRIPT>
)#

[THEN]   \ this is a comment string

VECT <CronScript-exec>

: cronscript-exec2 ( a u a1 u1 --)
S" %SystemRoot%\TEMP\%GetCurrentThreadId ABS%_%GetTickCount%.FEX" EVAL-SUBST  SCR-FNAME 2!
SCR-FNAME 2@ R/W CREATE-FILE 0=
IF >R
 R@ WRITE-FILE THROW
R> CLOSE-FILE DROP
StartIn: "%ModuleDirName%"
S" %ModuleDirName%nnCron.exe -runfile" EVAL-SUBST S"  " S+  S" %QUOTE%%SCR-FNAME 2@%%QUOTE%" S+ EVAL-SUBST StartScriptApp
 SCR-FNAME 2@ DELETE-FILE THROW
ELSE
2DROP
THEN
;

: CronScript-EVAL-OFF ['] cronscript-exec2 TO <CronScript-exec> ; CronScript-EVAL-OFF

: cronscript-exec3 ( a u a1 u1 --)
S" %SystemRoot%\TEMP\%GetCurrentThreadId ABS%_%GetTickCount%.FEX" EVAL-SUBST   SCR-FNAME 2!
SCR-FNAME 2@ R/W CREATE-FILE 0=
IF >R
EVAL-SUBST R@ WRITE-FILE THROW
R> CLOSE-FILE DROP
StartIn: "%ModuleDirName%"
S" %ModuleDirName%nnCron.exe -runfile" EVAL-SUBST S"  " S+  S" %QUOTE%%SCR-FNAME 2@%%QUOTE%" S+ EVAL-SUBST StartScriptApp
 SCR-FNAME 2@ DELETE-FILE THROW
ELSE
2DROP
THEN
CronScript-EVAL-OFF
;

: CronScript-EVAL-ON ['] cronscript-exec3 TO <CronScript-exec> ;

: <CronScript> ['] <CronScript-exec> S" </SCRIPT>" <script> ; IMMEDIATE

\EOF

актуально для WIN7
т.к. полностью загружает профиль пользователя
при запуске задачи из под сервиса

#( тестдля7
0 VALUE TRRR
CREATE Str123 125 ALLOT
AsLoggedUser
LoadProfile
Action:
111 TO TRRR
S" внешняя строка" Str123 PLACE

CronScript-EVAL-ON \ включаем обработку %%
<CronScript>
VARIABLE tray_icon_id
0 VALUE TRRR
CREATE Str123 125 ALLOT
S" внутренняя строка" Str123 PLACE
666 TO TRRR
: main
    S" nnCron: task started" 32512 0 LoadIconA ADD-TI
    tray_icon_id !
HINT: "%%TRRR%% - %TRRR%"
5000 PAUSE
    S" nnCron: task continued" 32515 0 LoadIconA tray_icon_id @ MODIFY-TI
MSG: "%%Str123 COUNT%% - %Str123 COUNT%"
    tray_icon_id @ DEL-TI
;
</SCRIPT>
)#
User avatar
AlikasS
 
Posts: 1434
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 4 guests

cron