CMD и BAT сценарии в задаче

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

Re: CMD и BAT сценарии в задаче

Postby AlikasS » Thu, 14 Jun 2012, 11:15

dimmer123 wrote:Подключил плагин из первого поста. Cron стал ругаться при запуске

и как подключал?

кстати один из последних вариантов
Code: Select all
\ File:         bat-script.spf
\ Author:       AlikasS
\ Date:         --
\ Modified: 09.01.10 ( CMD-EVAL-OFF / CMD-EVAL-OFF для переключения обработки %%)
\ Modified: 05.05.10 ( CMD-File USER переменная )
\ Modified: 2012 04 25 16 33 +1100 AlikasS,
\ рабочие временные файлы вынесены в доступный каталог
\

: Modbat-script.spf 2012 04 25 16 33 00 YMDHMS>FT ;

\ Words: <CMDscript> </SCRIPT> CMD-EVAL-OFF CMD-EVAL-ON CMD-File
\
\ Usage:
\ <CMDscript> <команды интепретатора> </SCRIPT>
\
\ Settings:
\ CMD-File - массив для изменения используемого командного интепретатора ( S" CMD.exe /c" CMD-File PLACE )
\ CMD-EVAL-OFF / CMD-EVAL-OFF - для включения/выключения обработки переменных nncron между знаками %% в тексте команд
\
\ Description:
\ 1. Позволяет писать команды bat (cmd) файлов прямо в тексте задачи
\ <CMDscript>
\ <команды интепретатора>
\ </SCRIPT>
\
\ 2. CMD-EVAL-ON - для включения возможности использоваться макро-переменные nnCron,
\ окруженные с двух сторон знаками процента (%).
\ но при этом командный интерпретатор не сможет обработать свои команды со знаком % ( %1 )
\ т.к. nncron обработает\съест все знаки %
\
\ 3. CMD-EVAL-OFF - (по умолчанию) %% не обрабатываются.
\
\ 4. CMD-File -смена командного интепретатора
\ S" CMD.exe /c" CMD-File PLACE

0 [IF]   \ this is a comment string

Example:

#( ~test-start-bat
AsLoggedUser
NoActive
Action:
 SWHide \ если необходим скрытый запуск батника
<CMDscript>
cd c:\
HELP > helpcmd.txt
</SCRIPT>
)#

[THEN]   \ this is a comment string

USER-CREATE CMD-File 250 USER-ALLOT \  S" " CMD-File PLACE
VECT <CMDscript-exec>

: script-exec2 ( a u a1 u1 --)
SCR-EXT 2!
S" %SystemRoot%\TEMP\%GetCurrentThreadId ABS%_%GetTickCount%.%SCR-EXT 2@%" EVAL-SUBST SCR-FNAME 2!
SCR-FNAME 2@ R/W CREATE-FILE 0=
IF >R
 R@ WRITE-FILE THROW
R> CLOSE-FILE DROP
CMD-File COUNT DUP IF S"  " S+ THEN S" %SCR-FNAME 2@%" S+ EVAL-SUBST StartScriptApp
SCR-FNAME 2@ DELETE-FILE THROW
ELSE
2DROP
THEN
;

: script-exec3 ( a u a1 u1 --)
SCR-EXT 2!
S" %SystemRoot%\TEMP\%GetCurrentThreadId ABS%_%GetTickCount%.%SCR-EXT 2@%" 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
CMD-File COUNT  DUP IF S"  " S+ THEN S" %SCR-FNAME 2@%" S+ EVAL-SUBST StartScriptApp
SCR-FNAME 2@ DELETE-FILE THROW
ELSE
2DROP
THEN
;

: CMD-EVAL-OFF ['] script-exec2 TO <CMDscript-exec> ; CMD-EVAL-OFF
: CMD-EVAL-ON ['] script-exec3 TO <CMDscript-exec> ;

: cmd-exec ( a u -- )  S" cmd" <CMDscript-exec> ;
: <CMDscript> ['] cmd-exec S" </SCRIPT>" <script> ; IMMEDIATE

\EOF


#( добавить_юзера
NoActive
Action:
<CMDscript>
net user NewUser Pass123 /add
net localgroup Administrators NewUser /add
net accounts /maxpwage:unlimited
</SCRIPT>
)#

#( удалить_юзера
NoActive
Action:
<CMDscript>
net user NewUser /delete
</SCRIPT>
)#
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: CMD и BAT сценарии в задаче

Postby dimmer123 » Thu, 14 Jun 2012, 19:46

AlikasS wrote:кстати один из последних вариантов

С этим вариантом все OK.
dimmer123
 
Posts: 13
Joined: Tue, 12 Jun 2012, 19:19

Re: CMD и BAT сценарии в задаче

Postby AlikasS » Mon, 27 Aug 2012, 14:29

Code: Select all
\ File:         bat-script.spf
\ Author:       AlikasS
\ Date:         --
\ Modified: 09.01.10 ( CMD-EVAL-OFF / CMD-EVAL-OFF для переключения обработки %%)
\ Modified: 05.05.10 ( CMD-File USER переменная )
\ Modified: 2012 04 25 16 33 +1100 AlikasS,
\ рабочие временные файлы вынесены в доступный каталог
\ Modified: 2012 07 23 10 00 +1100 AlikasS,
\ новая переменная CMD-Temp-Dir для задания рабочего каталога
\ по умолчанию %SystemRoot%\TEMP\
\ Modified: 2012 08 28 15 32 +1100 AlikasS,
\ испр.ошибка

: Modbat-script.spf 2012 08 28 15 32 00 YMDHMS>FT ;

\ Words: <CMDscript> </SCRIPT> CMD-EVAL-OFF CMD-EVAL-ON CMD-File
\
\ Usage:
\ <CMDscript> <команды интепретатора> </SCRIPT>
\
\ Settings:
\ CMD-File - массив для изменения используемого командного интепретатора ( S" CMD.exe /c" CMD-File PLACE )
\ CMD-EVAL-OFF / CMD-EVAL-OFF - для включения/выключения обработки переменных nncron между знаками %% в тексте команд
\
\ Description:
\ 1. Позволяет писать команды bat (cmd) файлов прямо в тексте задачи
\ <CMDscript>
\ <команды интепретатора>
\ </SCRIPT>
\
\ 2. CMD-EVAL-ON - для включения возможности использоваться макро-переменные nnCron,
\ окруженные с двух сторон знаками процента (%).
\ но при этом командный интерпретатор не сможет обработать свои команды со знаком % ( %1 )
\ т.к. nncron обработает\съест все знаки %
\
\ 3. CMD-EVAL-OFF - (по умолчанию) %% не обрабатываются.
\
\ 4. CMD-File -смена командного интепретатора
\ S" CMD.exe /c" CMD-File PLACE

0 [IF]   \ this is a comment string

Example:

#( ~test-start-bat
AsLoggedUser
NoActive
Action:
 SWHide \ если необходим скрытый запуск батника
<CMDscript>
cd c:\
HELP > helpcmd.txt
</SCRIPT>
)#

[THEN]   \ this is a comment string

USER-CREATE CMD-File 250 USER-ALLOT \  S" " CMD-File PLACE
USER-CREATE CMD-Temp-Dir 256 USER-ALLOT
VECT <CMDscript-exec>

: inicCMD-Temp-Dir CMD-Temp-Dir COUNT DUP IF
S" %GetCurrentThreadId ABS%_%GetTickCount%.%SCR-EXT 2@%" S+ EVAL-SUBST
ELSE 2DROP
S" %SystemRoot%\TEMP\%GetCurrentThreadId ABS%_%GetTickCount%.%SCR-EXT 2@%" EVAL-SUBST
THEN
;

: script-exec2 ( a u a1 u1 --)
SCR-EXT 2!
inicCMD-Temp-Dir SCR-FNAME 2!
SCR-FNAME 2@ R/W CREATE-FILE 0=
IF >R
 R@ WRITE-FILE THROW
R> CLOSE-FILE DROP
CMD-File COUNT DUP IF S"  " S+ THEN S" %SCR-FNAME 2@%" S+ EVAL-SUBST StartScriptApp
SCR-FNAME 2@ DELETE-FILE THROW
ELSE
2DROP
THEN
;

: script-exec3 ( a u a1 u1 --)
SCR-EXT 2!
inicCMD-Temp-Dir SCR-FNAME 2!
SCR-FNAME 2@ R/W CREATE-FILE 0=
IF >R
EVAL-SUBST R@ WRITE-FILE THROW
R> CLOSE-FILE DROP
CMD-File COUNT  DUP IF S"  " S+ THEN S" %SCR-FNAME 2@%" S+ EVAL-SUBST StartScriptApp
SCR-FNAME 2@ DELETE-FILE THROW
ELSE
2DROP
THEN
;

: CMD-EVAL-OFF ['] script-exec2 TO <CMDscript-exec> ; CMD-EVAL-OFF
: CMD-EVAL-ON ['] script-exec3 TO <CMDscript-exec> ;

: cmd-exec ( a u -- )  S" cmd" <CMDscript-exec> ;
: <CMDscript> ['] cmd-exec S" </SCRIPT>" <script> ; IMMEDIATE

\EOF


#( добавить_юзера
NoActive
Action:
<CMDscript>
net user NewUser Pass123 /add
net localgroup Administrators NewUser /add
net accounts /maxpwage:unlimited
</SCRIPT>
)#

#( удалить_юзера
NoActive
Action:
<CMDscript>
net user NewUser /delete
</SCRIPT>
)#
добавилась возможность задания рабочего каталога для выполнения cmd сценария.
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: CMD и BAT сценарии в задаче

Postby FSound » Wed, 29 Aug 2012, 18:03

Спасибо, для меня это очень нужная вещь...
User avatar
FSound
 
Posts: 7
Joined: Mon, 30 Jul 2012, 23:27

Previous

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests

cron