Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 10. Help - Помощь
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:   Рус   |   Eng        Refer:   Рус   |   Eng  

Команда: 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