Ключи командной строки

Ключ

Описание

-!

Прерывает разбор командной строки. Все ключи, указанные после него, могут быть переданы (как есть) только  в первую выполняемую программу ('RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX'). Может понадобиться, если необходимо указать ключ, который используется и в SFX модуле и в выполняемой программе.
Например, в файле конфигурации RunProgram="setup.exe -s", а необходимо выполнить "setup.exe -s -y" (ключ '-y' используется самим модулем). Чтобы передать его в 'RunProgram' нужно выполнить "sfx.exe -gm2 -! -y". Ключ '-y' будет проигнорирован модулем, передан в командную строку и выполнится "setup.exe -s -y". В то же время, модуль воспримет ключ '-gm2' и сделает "тихую" распаковку.

-ai

Автоматическая установка.

Указывает использовать параметр 'AutoInstall' вместо 'RunProgram', 'ExecuteFile' или 'AutoInstallX' из файла конфигурации. Если 'AutoInstall' не указан - данный ключ игнорируется.

Ключ автоматически подавляет вывод диалога 'BeginPrompt', т.е. можно не указывать ключ '-y'.

-aiX

Автоматическая установка определенного (литерного) варианта. В качестве литеры X допустимы [0...9], [A...Z], [a...z]. Для вызываемого варианта должна быть соответствующая строка в файле конфигурации (параметр 'AutoInstallX'), т.е., если указать '-ai7', то в файле конфигурации должна присутствовать строка вида AutoInstall7="auto_install.exe parameters for scenario 7", иначе будет выведено сообщение об ошибке.

Пакетный режим автоматических установок также возможен. После '-ai' указываются литеры автоматических установок, например, если выполнить "sfx.exe -ai3R2", то будут выполнены последовательно 'AutoInstall3', затем 'AutoInstallR', а затем 'AutoInstall2'. Если в какой-то из 'AutoInstallX' установок несколько команд - они выполнятся последовательно, и только затем выполнение перейдет к следующей указанной 'AutoInstallX'.
Для каждого вызываемого варианта 'AutoInstallX', литеры после '-ai', должна быть соответствующая строка в файле конфигурации (параметр 'AutoInstallX'). Таким образом, если указать '-ai37', в файле конфигурации должны присутствовать хотя бы по одной строке вида AutoInstall3="auto_install3.exe switches for program3" и AutoInstall7="auto_install7.exe switches for program7", иначе будет выведено сообщение об ошибке.

Ключ автоматически подавляет вывод диалога 'BeginPrompt', т.е. можно не указывать ключ '-y'.

-fmX

Режим/время отображения окна 'FinishMessage', где X:

  • 0 - не отображать окно
  • 1 - отображать окно
  • N (N= 2...999) - отображать окно в течение N секунд; обратный отсчет времени отображается на кнопке "OK", и по его истечении окно 'FinishMessage' закрывается и работа модуля прекращается

Ключ ПЕРЕОПРЕДЕЛЯЕТ префиксы 'fmX' в файле конфигурации. Командная строка имеет приоритет.
При отсутствии 'FinishMessage' в файле конфигурации ключи '-fmX' игнорируются.

-gfX

Режим отображения диалоговых окон.
Из командной строки можно ИЗМЕНИТЬ отдельные флаги в 'GUIFlags' файла конфигурации:

  • -gf-8  - уберет стили ХР (минус перед восьмеркой), остальные возьмет из файла конфигурации
  • -gf+256  - добавит подтверждение отмены установки, остальные возьмет из файла конфигурации
  • -gf-8+256  или
  • -gf+256-8  - уберет стили ХР, добавит подтверждение отмены установки, а остальные возьмет из файла конфигурации

Попытки сбросить неустановленный флаг или добавить уже установленный флаг - ИГНОРИРУЮТСЯ.
Например, если в файле конфигурации было GUIFlags="136" (8+128), а запустили SFX архив с ключом "-gf-8+128-256+1024", то это только сбросит флаг 8 и добавит флаг 1024, а остальное проигнорирует (в 'GUIFlags' флаг 128 уже установлен, а флаг 256 отсутствует и сбрасывать нечего). В результате SFX архив отработает с GUIFlags="128+1024".

Если не указывать предваряющий знак (+ или -), то можно полностью ЗАМЕНИТЬ 'GUIFlags' файла конфигурации:

  • -gf64+8  - 'GUIFlags' будет равен "72", независимо от того, что указано в файле конфигурации.

Ключ ИЗМЕНЯЕТ параметр 'GUIFlags' в файле конфигурации.

-gmX

Режим отображения распаковки, где X:

  • 0 - стандартный режим - родной режим архиватора 7-Zip, т.е. с кнопками "Отмена" и "Закрыть" (которая в правом верхнем углу окна)
  • 1 - отображать процесс распаковки, но скрыть кнопку "Отмена", блокировать кнопку "Закрыть" (которая в правом верхнем углу окна) и клавишу [Esc] на клавиатуре
  • 2 - не отображать диалога процесса распаковки (т.е. "тихий" режим)

Ключ ПЕРЕОПРЕДЕЛЯЕТ параметр 'GUIMode' в файле конфигурации. Ключ не подавляет вывод диалога 'BeginPrompt', для этого нужно использовать ключи '-ai', '-aiX' или '-y'.

-h или -?

Выводит диалог с текстом, содержащимся в 'HelpText', и кнопкой 'OK'. Если 'HelpText' в файле конфигурации отсутствует, будет выведено сообщение: (Параметр "HelpText" не указан в файле конфигурации)

После закрытия данного диалога работа модуля будет прервана (т.е. ничего не будет распаковываться/устанавливаться).

-mfX

Режим проверки и вывод диалоговых окон предупреждений ('WarningTitle'), где X сумма флагов:

  • 1 - не проверять свободное место на диске необходимое для процесса распаковки
  • 2 - не проверять размер физической памяти необходимой для процесса распаковки

Ключ ПЕРЕОПРЕДЕЛЯЕТ параметр 'MiscFlags' в файле конфигурации.

-nr

Запрещает запуск программ, указанных в 'RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX', т.е. выполняется только распаковка. Кроме этого не создаются ярлыки, не удаляются файлы и SFX архив ('Delete' , 'DeleteX'', 'Shortcut', ''ShortcutX и 'SelfDelete' не выполняются)

Ключ не действует при распаковке во временную папку.

-omX

Переопределяет параметр 'OverwriteMode' файла конфигурации.

  • 0 - перезаписывать все файлы (режим по умолчанию)
  • 1 - не перезаписывать существующие файлы
  • 2 - перезаписывать только те файлы, которые старее, чем в SFX архиве
     
  • 8 - пропускать файлы заблокированные системой

Из значений 0, 1, 2 можно использовать только одно, но его можно комбинировать с флагом 8 по тому же принципу, как в '-gfX'.

-sdX

Переопределяет параметр 'SelfDelete' файла конфигурации.

  • 0 - НЕ УДАЛЯТЬ SFX архив, даже если в файле конфигурации присутствует SelfDelete="1"
  • 1 - УДАЛИТЬ SFX архив, независимо от наличия 'SelfDelete' в файле конфигурации
-sfxconfig

Позволяет извлечь из SFX архива и сохранить файл конфигурации. После ключа через пробел указывается имя (или путь и имя) файла. Имя и расширение файла может быть любым. Допустимы как абсолютные, так и относительные пути. Если папки не существует - она будет создана. Если создать папку или записать файл на носитель (например, CD-ROM) не удастся - будет выведено сообщение об ошибке. Примеры использования:

  • -sfxconfig config.txt  - сохранит файл "config.txt" в текущей папке*
  • -sfxconfig \config.txt  - сохранит файл "config.txt" в корне диска, на котором находится текущая папка*
  • -sfxconfig ..\config.txt  - сохранит файл "config.txt" в папке уровнем выше текущей папки*
  • -sfxconfig D:\DISTRIBUT\7-Zip\Папка с пробелами и кириллицей\конфигурация.cfg  - сохранит файл "конфигурация.cfg" в папке "D:\DISTRIBUT\7-Zip\Папка с пробелами и кириллицей"

* О текущей папке см. относительные пути.

-sfxlang

Указывает, какой язык, из имеющихся в файле конфигурации, будет использован в диалоговых окнах SFX архива.
Форма записи: -sfxlang:xxxx (где xxxx - идентификатор языка). Этот ключ должен быть первым в командной строке.

Пример двуязычного файла конфигурации:

;!@Install@!UTF-8:Language:1049!
Title="Установка 'Кнопки для работы с 7z SFX архивами' (v14.2)"
BeginPrompt="Сейчас будет установлена кнопка для работы с 7z SFX архивами в TC.

Для ее нормальной установки и работы необходимо, чтобы запуск
этого инсталлятора был произведен из работающего Total Commander-а.
Расположение самого инсталлятора значения не имеет.

Если это условие не выполнено, нажмите кнопку \"Отмена\"."
ExtractPathTitle="Путь установки кнопки"
ExtractPathText="Если Вы видите в строке ввода \"%^commander_path%\\Utilites\", значит НЕ выполнено
условие запуска этого инсталлятора - ТОЛЬКО из Total Commander-а.
Настоятельно рекомендуется отменить установку и повторить ее из работающего TC!

Если Вы видите в строке ввода реальный путь к вашему TC - можете продолжить
установку. Изменять указанный путь НЕ рекомендуется, но... можно. ;)"
SetEnvironment="lng=1049"
SetEnvironment="CustomPath=%%T"
GUIFlags="8+32+128+1024+2048+4096"
GUIMode="2"
InstallPath="%commander_path%\\Utilites"
RunProgram="hidcon:install_button.bat"
;!@InstallEnd@:Language:1049!

;!@Install@!UTF-8!
Title="Installation of the 'Button for work with 7z SFX archives' (v14.2)"
BeginPrompt="The button for work with 7z SFX archives in TC will be now installed.

For its normal installation and job it is necessary, that start of this
installer has been made from working Total Commander.
The location of the installer is indifferent.

If this condition is not executed, press button \"Cancel\"."
ExtractPathTitle="Path for installation of the button"
ExtractPathText="If you see in a line of input \"%^commander_path%\\Utilites\", means
the condition of start of this installer - ONLY from Total Commander is NOT satisfied.
Insistently it is recommended to cancel installation and to repeat it from working TC!

If you see in a line of input a real path to yours TC - can continue installation.
To change the specified way it is NOT recommended, but... it is possible. ;)"
SetEnvironment="lng=1033"
SetEnvironment="CustomPath=%%T"
GUIFlags="32+128+1024+2048+4096"
GUIMode="2"
InstallPath="%commander_path%\\Utilites"
RunProgram="hidcon:install_button.bat"
;!@InstallEnd@!

Приведенный файл конфигурации состоит из двух секций, каждая из которых имеет сигнатуру начала (;!@Install@!UTF-8!) и сигнатуру конца (;!@InstallEnd@!). В первой секции (русской) к сигнатурам добавлен идентификатор языка (выделен красным).

Секций может быть не две, а больше, но одну из них лучше всегда оставлять без идентификаторов. В случае, когда модуль не найдет секции соответствующей языку системы или указанному в ключе идентификатору, будет использоваться секция без языковых идентификаторов, но если ее не будет, то будет выдано сообщение об ошибке.

Возможные варианты установки SFX архива с таким файлом конфигурации:

1 Язык системы русский (идентификатор 1049)

  • установка без ключа -sfxlang - интерфейс установки SFX архива русский
  • установка с ключом -sfxlang:1049 - интерфейс установки SFX архива русский
  • установка с ключом -sfxlang:1033 или любым другим не равным 1049 - интерфейс установки SFX архива английский

2 Язык системы не русский (идентификатор любой не равный 1049)

  • установка без ключа -sfxlang - интерфейс установки SFX архива английский
  • установка с ключом -sfxlang:1049 - интерфейс установки SFX архива русский
  • установка с ключом -sfxlang:1033 или любым другим не равным 1049 - интерфейс установки SFX архива английский
-sfxversion

Выводит окно с информацией о:

  • версии и дате создания SFX модуля
  • версии исходных текстов архиватора 7-Zip используемых в модуле
  • методах и фильтрах сжатия, поддерживаемых модулем

Полезно, когда информация в ресурсах модуля была кем-то изменена.

-y

Скрывает окна диалогов 'BeginPrompt', 'ExtractPath', совмещенного 'BeginPrompt' + 'ExtractPath' и 'FinishMessage'. Окно распаковки (если не скрыто параметром 'GUIMode' или ключом '-gm2') будет показано. При попытке прервать распаковку/установку, она будет прервана без вывода окна подтверждения 'CancelPrompt'. Окна ошибок, если таковые возникнут, будут отображаться, не зависимо от этого ключа. Ключ оригинального SFX модуля архиватора 7-Zip.