help chain | help chars | help colors | help compile | help nocase | help office | help options | help patterns | help select | help shell | help unicode | help var | samp | Команда: help var поддержка параметров и переменных sfk параметры скрипта sfk - выглядеть как %1 %2 %3 до %9, или с sfk для окон также как $1 $2 $3. - используются с sfk script и call/label. - передаются в цепочку команд script или label при этом они никогда не меняются. веб-ссылка http://stahlworks.com/sfk-helpvar пример: --- файл filt.bat начало --- скрипт sfk "%~f0" -от начала %* ПЕРЕЙТИ к концу sfk метка начало + фильтр %1 %2 +конец :конец --- конец файла filt.bat --- ввод "filt.bat in.txt --+foo" запустит фильтр sfk используя параметры "in.txt" и "-+foo". под окнами %~f0 - это абсолютное имя пакетного файла сам, включая расширение .bat или .cmd. глобальные переменные sfk - установлены как: sfk setvar myvar="тестовый текст" ... sfk echo foo +setvar myvar ... sfk xed in.txt "/foo*bar/[setvar myvar][part2][endvar]/" ... - используются дальнейшими командами в цепочке, например: sfk ... +getvar myvar sfk ... +echo -var "используя #(myvar)" sfk ... +xed "_<foo>*</foo>_[part1][getvar myvar][part3]_" примечание: читать или использовать содержимое переменных по шаблону #(имя) опция -var должна быть указана. это чтобы избежать нежелательного побочные эффекты с командами, которые получают "#(" в их входные файлы или входные текстовые потоки. - разрешенные имена переменных: должен начинаться с az, затем a-z0-9_ Примеры: sfk setvar file=in.txt +filter -var "#(file)" -+foo запускает фильтр sfk, задавая имя входного файла по переменной. sfk xex in.txt "/foo=*/[setvar fooval][part2][endvar]/" +echo -var "foo: #(fooval)" извлеките foo=(любой текст) из in.txt, поместите найденный текст в переменную fooval, затем распечатайте его. [19] предопределенные переменные sfk #(sys.slash) выдает \ под windows, / под linux. #(sys.sfkver) текущая версия sfk. #(sys.numcols) количество столбцов консоли. #(sys.ownscript.name) имя файла текущего скрипта. чтобы получить текст текущего скрипта, используйте, например: sfk ... +getvar sys.ownscript.text +filter ... доступ к переменной среды можно сделать как #(env.varname). varname регистр нечувствителен в Windows и использует регистр в Linux. пример: sfk -var echo "tmp содержит: #(env.TMP)" переменные локальной команды sfk - создаются непосредственно из вводимого текста производится предыдущей командой в цепочке команд - поддерживаются только в некоторых командах, таких как sfk запустить "... $текст ..." запускает внешнюю программу один раз для каждой входной строки. sfk perline "... $text ..." запускает внутренние команды sfk один раз для каждой строки ввода. sfk filter -tabform "... $col1 ... $col2 ..." разбивает текстовые строки с помощью символа TAB, позволяя переформатировать. введите sfk run, sfk perline и т. д. для получения дополнительной информации. смотрите также sfk setvar устанавливает переменную SFK sfk addtovar добавляет текстовые строки в переменную SFK sfk incvar увеличивает числовую переменную sfk decvar уменьшает числовую переменную sfk getvar получить SFK или переменную среды Форматирование вывода переменной sfk формальный синтаксис: #(-03.4имя_переменной) с возможными управляющими символами: - форматировать по левому краю, иначе по правому 0 заполнить нулями, иначе пробелами .4 взять до 4 символов из переменной пример: если переменная i содержит "1", то вывод команды +echo -var ">#(i)<" >1< +echo -var ">#(3i)<" > 1< +echo -var ">#(-3i)<" >1 < +echo -var ">#(03i)<" >001< пример: если переменная s содержит "abcde", то вывод команды +echo -var ">#(.3s)<" >abc< +echo -var ">#(5.3s)<" > abc< переменные функции sfk при чтении переменного текста, такого как #(varname), некоторые дополнительные функции можно применять с помощью #(func(varname,...)). доступные функции: strpos(v,'text') получить индекс текста в v. 0=первый символ, -1=не найден strpos(v,-case 'text') то же самое, с учетом регистра (быстро) strpos(v,myvar) получить индекс текста из myvar внутри текста переменной v. strpos(v,-spat '\x20') поиск с использованием косой черты strrpos(v,'text') поиск справа contains(v,'text') сообщает 1, если текст найден в v, иначе 0. принимает -case и -spat contains(v,-case a) сообщает, если текст из переменной a содержится внутри v с использованием быстрый поиск с учетом регистра begin(v,'word') проверить, начинается ли строка со слова. возвращает 1 (да) или 0 (нет). ends(v,'word') проверить, заканчивается ли строка словом. возвращает 1 (да) или 0 (нет). substr(v,o[,l]) подстрока со смещения o длины l которые сами могут быть переменными. смещение 0 - первый символ. отрицательный о начинается с правой стороны минус о. rsubstr(v,o[,l]) подстрока с правой стороны до l символов влево. [l/r]trim(v) удалить пробелы по бокам isset(v) сообщает 1, если v установлено, иначе 0 size(v) количество байтов в v strlen(v) количество символов в v, если он содержит только обычный текст numlines(v) количество строк в v пример: если переменная s содержит "foo bar", то вывод команды +echo -var "#(substr(a,4,3))" панель +echo -var "#(strpos(a,'bar'))" 4 |