Предопределенные переменные nnCron

%hh%
- текущий час (00-23)
%mm% - текущая минута (00-59)
%ss%

- текущая секунда (00-59).
nnCron автоматически "обновляет" значение этой переменной раз в минуту, а чтобы обновить его "принудительно", воспользуйтесь словом GET-CUR-TIME.

%MM% - месяц (01-12)
%MMM% - месяц (Jan-Dec)
%DD% - день (01-31)
%WW% - день недели (Mo-Su)
%WD% - день недели (1-7, 1-monday, 7-sunday)
%YYYY% - год (4 digit)
%YY% - год (last 2 digit)

%crlf% - возврат каретки и перевод строки
%QUOTE% - кавычка (")
%% - процент (%)
%PERCENT% - процент (%)
%FILE: filename%

- вставляет содержимое файла filename.
Существует вариант этого слова с постфиксным расположением параметров: S" filename" FILE.


%FOUND-FILENAME%

- имя найденного файла (см. описание цикла FOR-FILES:)

%FOUND-FULLPATH% - полный путь и имя найденного файла (см. описание цикла FOR-FILES:)
%FOUND-RELPATH% - полное имя найденного файла относительно каталога поиска (см. описание цикла FOR-FILES:)

%WIN-TITLE% - заголовок окна (см. "Работа с окнами")

%ACTIVE-WINDOW%

- заголовок активного окна (см. "Работа с окнами")

%FOUND-WINDOW% - заголовок найденного окна (см. "Работа с окнами")
%FOUND-CHILD-WINDOW% - заголовок найденного дочернего окна (см. описание цикла FOR-CHILD-WINDOWS:)

%FOUND-PROC% - имя найденного процесса (см. "Работа с процессами")

%FOUND-PID%

- PID найденного процесса (см. "Работа с процессами")

%[if] <условие>% ... %[else]% ... %[end]% - способ конструировать строку в зависимости от указанного условия.

Примеры:

#( test_string_constr
NoActive
Action:
MSG: "Я сейчас в %[if] ONLINE?%онлайне%[else]%офлайне%[end]%!"
MSG: 'Notepad %[if] S" notepad.exe" PROC-EXIST?%%[else]%не %[end]%запущен!'
)#

#( test_string_constr1
NoActive
: opera? WIN-EXIST: "*Opera" ;
Action:
MSG: "Opera %[if] opera?%%[else]%не %[end]%запущена!"
)#

#( test_string_constr2
NoActive
\ постфиксная форма, выводим сообщение на консоль
: opera? WIN-EXIST: "*Opera" ;
Action:
S" Opera %[if] opera?%%[else]%не %[end]%запущена!" EVAL-SUBST TYPE CR
)#


%n esPICK%
- вставка n-го числа со стека

%n esPICKS%

- вставка строки со стека, адрес которой хранится
в n-й позиции стека, а счётчик в n-1

Примечание: нумерация в стеке начинается с 0, значит: самая верхняя позиция - 0. После выполнения подстановки стек очищается до максимального использованного значения.

Примеры:

#( test_esPICK
NoActive
Action:
\ кладем на стек три числа (сегодняшние год, месяц и день):
Year@ Mon@ Day@
\ выводим все три числа со стека в сообщении:
MSG: "Сегодняшняя дата: %0 esPICK%-%1 esPICK%-%2 esPICK%"
)#

#( test_esPICK1
NoActive
Action:
\ кладем на стек три числа (сегодняшние год, месяц и день):
Year@ Mon@ Day@
\ выводим все три числа со стека в разных сообщениях:
MSG: "Сегодняшний день: %0 esPICK%"
MSG: "Сегодняшний месяц: %0 esPICK%"
MSG: "Сегодняшний год: %0 esPICK%"
)#

#( test_esPICKS
NoActive
Action:
\ кладем на стек две строки:
S" first string" S" second string"
\ выводим обе строки со стека в сообщении:
MSG: "%1 esPICKS% и %3 esPICKS%"
)#

#( test_esPICKS1
NoActive
Action:
\ кладем на стек две строки:
S" first string" S" second string"
\ выводим обе строки со стека в разных сообщениях:
MSG: "Вторая строка: %1 esPICKS%"
MSG: "Первая строка: %1 esPICKS%"
)#


%COMSPEC% - имя командного интерпретатора (command.com в Win9* и cmd.exe в WinNT/2000/XP)
%CLIPBOARD% - текущее содержимое буфера обмена
%USERNAME%

- имя текущего залогинившегося пользователя

%CONNECTION% - список всех активных интернет соединений (conn1, conn2, ...)
%LAST-CONNECTION% - имя последнего RAS соединения (например, для WatchDisconnect)
%ModuleDirName% - полный путь к каталогу, в который установлен nnCron
%CHAR X FREE-SPACE%

- количество свободного места на диске X: (в килобайтах).

Например, для диска C: используйте %CHAR C FREE-SPACE%, для диска D: - %CHAR D FREE-SPACE% и т. д.

%$0% %$1% .... %$15% - переменные, используемые в регулярных выражениях
%ExitCodeProc% - код завершения (error level) приложения. Используется после выполнения START-APPW:
%ThreadId% - номер thread'a в котором стартует задача, идентификатор процесса задачи
%WATCH-PROC-ID% - содержит идентификатор процесса (PID). Заполняется после применения WatchProc:/WatchProcStop:. Используется в качестве аргумента для слов, работающих с процессами.
%WATCH-SESSIONID% - содержит SessionID. Заполняется после применения слов WTSWatch*.
%DRIVE-LETTER% - содержит букву подключенного/отключенного съемного диска. Заполняется после применения WatchDrive:/WatchDriveRemove:.
%TempFile%

- содержит уникальную cтроку, сконструированную так: <номер_по_порядку>.<ThreadId>.<TickCounter>, например:

5.120.5434173
6.968.5439611
7.544.5446721
8.1100.5451629

Такую строку удобно использовать, например, в качестве уникального имени файла.

%PrevTempFile%

- содержит имя предыдущего %TempFile%

PROC-ID - идентификатор процесса (PID) приложения, запущенного из nnCron. Используется в качестве аргумента для слов, работающих с процессами. Переменная заполняется после успешного запуска любого приложения (START-APP:, START-APPW:, QSTART-APP:).
WIN-HWND - содержит window handle окна. Заполняется после большинства "оконных" команд (а также WIN-EXIST:).
WIN-CHILD-HWND - содержит window handle дочернего окна. Заполняется внутри цикла FOR-CHILD-WINDOWS:.

Пользовательские каталоги (переменные, которые возвращают путь и имя пользовательских каталогов, заполняются только если загружен профиль пользователя):

%FOLDER-APP-DATA% - Application data folder
%FOLDER-COMMON-DESKTOP% - общий для всех пользователей рабочий стол
%FOLDER-COMMON-STARTMENU% - общее меню "Пуск"
%FOLDER-COMMON-PROGRAMS% - общее меню "Программы"
%FOLDER-DESKTOP% - рабочий стол
%FOLDER-FAVOURITES% - избранное
%FOLDER-PERSONAL% - личная папка
%FOLDER-STARTMENU% - меню "Пуск"
%FOLDER-PROGRAMS% - меню "Программы"
%FOLDER-RECENT% - "Документы" (те что в меню "Пуск")
%FOLDER-SENDTO% - меню "Отправить"
%FOLDER-STARTUP% - меню "Автозагрузка"
%FOLDER-TEMPLATES% - образцы документов
%FOLDER-TEMP% - папка для временных файлов
%FOLDER-WINDOWS% - папка Windows
%FOLDER-SYSTEM% - системная папка

Кроме того, в качестве переменных nnCron можно использовать любые переменные среды (environment variables), например, %PATH% и любые слова Форта, но при этом необходимо чтобы выражение имело своим результатом строку ( -- addr u) или целое 32-разрядное число ( -- n).

Пример:

\ в строку будет вставлено количество миллисекунд, 
\ прошедших с момента старта системы
MSG: "%GetTickCount%"