
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 |
![]() |