Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 9. Diverse - Разное
ascii | ascii -dos | calc | cmd | data | env | fromclip | jsonform | license | number | prompt | random | ruler | spell | status | toclip | update | version | video | view | xmlform |


Help:   Рус   |   Eng        Refer:   Рус   |   Eng  

Команда: version

Отображение информации о переносимой версии, встроенной в двоичные файлы

Встраивайте простую строковую информацию о версии в свои программы без необходимости использования непереносимых файлов манифеста

sfk version filename

sfk ver -own Печатная версия двоичного файла или самого SFK.

Эта функция может быть использована:

  • 1. С бинарными файлами, содержащими строку переносимой версии:

    $version:name=sfk,type=base,os=windows,vernum=1.5.1,fix=0, title=Swiss File Knife,date=Aug 2 2008,info=major rework$\0

  • 2. С двоичными файлами Windows, где извлекаются только версия и размер файла и отображается время изменения файла.
    Если обнаружена версия продукта, отличающаяся от версии файла, это отображается в информационном поле.

    Поля строки версии:

  • [2] *name - короткое имя, обычно похожее на имя исполняемого файла
  • [3] type - тип издания, например, базовое или расширенное
  • [4] *os - операционная система, например, Windows, Linux-lib6, Linux-lib5
  • [5] *vernum - любой номер или значение, разделенные точками
  • [6] fix - уровень исправления, например, номер редакции или пакета обновления
  • [7] *title - длинное описательное имя, напечатанное в тексте справки
  • [8] *date - дата выпуска или компиляции
  • [9] info - дополнительная информация или примечания, произвольная текстовая строка

    Поля, отмеченные знаком «*», являются обязательными для указания действительной строки версии. Остальные поля можно пропустить или оставить пустыми, например «,fix=,».

    Если оно найдено, содержимое печатается через TAB после имени файла, поэтому числа [], приведенные выше, являются номерами выходных столбцов, а не местоположением во входной строке, которая в любом случае является случайной.

    ПАРАМЕТРЫ

  • -num[ber] - просто распечатывает полный номер версии, объединяя номер версии и исправление в строку с точками, нельзя использовать с -own.

  • -verbose - выдает предупреждение, если файл(ы) не содержит версии

  • -win[dows] - компактное отображение файла, ОС, версии и времени файла. Это все, что показано для двоичных файлов Windows

    ПСЕВДОНИМЫ

    sfk winver - то же, что и sfk ver -win, чтобы в первую очередь отображать информацию о версии файла Windows.

    СМОТРИТЕ ТАКЖЕ

    sfk require - проверить, используется ли требуемая версия

    ПРИМЕРЫ

    sfk ver dview.exe распечатать версию исполняемого файла Depeche View

    sfk ver -own распечатать версию SFK

    sfk ver. распечатать версию SFK (самая быстрая)

    sfk ver . .exe показать версию всех файлов .exe в текущей папка и всех вложенных папках

    sfk ver -nosub . .exe +filt -ssep "\t" -sform "$-20.20col1\t$col5" поиск версий во всех файлах .exe текущего каталога,переформатирование вывода с ограничением в 20 символов имени файла.

    Пример внедрения версии для программ C/C++

    Добавьте в исходный код:


    #define SOFTWARE_VERSION 101  // meaning 1.01
    
          #define OS_SHORT_NAME "linux" // or "windows", "mac"
    
          #define STRINGIFY(x) #x
          #define TOSTRING(x)  STRINGIFY(x)
          #define SOFTWARE_VERTEXT TOSTRING(SOFTWARE_VERSION)
    
          static const char *pGlblVersionText =
             " $version:name=footool,vernum=" SOFTWARE_VERTEXT ","
             "title=The Foo Bar Tool,"
             "os=" OS_SHORT_NAME ","
             "date=" __DATE__ " " __TIME__ "$\0";
    
          void printHelpText()
          {
             // NOTE: this dummy operation is required with some compilers
             //       to keep pGlblVersionText from being stripped by the linker,
             //       as it isn't used anywhere within the code.
             printf("%c", *pGlblVersionText);
    
             // ... (print actual help text)
          }
    

    После компиляции извлеките версию, например:

    sfk version footool.exe

    Вывод результата:

    footool.exe footool linux 101 The Foo Bar Tool Apr 20 2013 08:58:40