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

Ключ

Описание

-!

Прерывает разбор командной строки. Все ключи, указанные после него, могут быть переданы (как есть) только  в первую выполняемую программу ('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'.

-bptX

Определяет время отображения диалога 'BeginPrompt' или совмещенного диалога 'BeginPrompt' + 'ExtractPath' и кнопку по умолчанию, где X:

  • 1...999 - отображать окно 1...999 секунд; обратный отсчет времени отображается на кнопке "Да" ("OK"), и по его истечении она будет нажата автоматически.
  • -1...-999 - отображать окно 1...999 секунд; обратный отсчет времени отображается на кнопке "Нет" ("Отмена"), и по его истечении она будет нажата автоматически.
  • 0 - игнорируется

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

-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 - не проверять размер физической памяти необходимой для процесса распаковки
  • 4 - запрашивать права администратора для всех операций текущего SFX, если таких прав нет у пользователя запустившего SFX.
  • 8 - запрос пароля (диалог 'PasswordTitle') после диалогов 'BeginPrompt' и 'ExtractPath', без этого флага диалог 'PasswordTitle' будет появляться до диалогов 'BeginPrompt' и 'ExtractPath'

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

-nr

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

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

-omX

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

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

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

-pX

Определяет пароль для зашифрованных SFX архивов, где X - пароль с которым упакован исходный 7z архив.
Пароль без пробелов можно указывать без кавычек. При наличии пробелов в пароле, он обязательно должен быть в кавычках. Примеры использования:

  • -sfx.exe -pPassword
  • -sfx.exe -p"Password with a space"
-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!
SetEnvironment="lng=1049"
Title="Установка 'Кнопки для работы с 7z SFX архивами' (v1.18.6)"
BeginPrompt="Сейчас будет установлена кнопка для работы с 7z SFX архивами в TC.

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

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

Если Вы видите в строке ввода реальный путь к вашему TC - можете продолжить
установку. Изменять указанный путь НЕ рекомендуется, но... можно. ;)"
;!@InstallEnd@:Language:1049!

;!@Install@!UTF-8:Language:1058!
SetEnvironment="lng=1058"
SetEnvironment="7zSfxString26=Скасувати"
SetEnvironment="7zSfxString27=Так"
SetEnvironment="7zSfxString28=Ні"
SetEnvironment="7zSfxString29= с"
SetEnvironment="7zSfxString35=Назад"
SetEnvironment="7zSfxString36=Далі"
SetEnvironment="7zSfxString37=Готово"
SetEnvironment="7zSfxString38=Скасувати"
Title="Інсталяція 'Кнопки для роботи з 7z SFX-архівами' (v1.18.6)"
BeginPrompt="Зараз буде встановлена кнопка для роботи з 7z SFX-архивами у TC.

Для її нормальної інсталяції й роботи необхідно, щоб запуск цього
інсталятора був проведений з працюючого Total Commander.
Розташування самого інсталятора значення не має.

Якщо ця умова не виконана, натисніть кнопку \"Скасувати\"."
ExtractPathTitle="Шлях інсталяції кнопки"
ExtractPathText="Якщо ви бачите у рядку введення \"%^COMMANDER_PATH%\\Utilites\", значить НЕ виконана
умова запуску цього інсталятора - ТІЛЬКИ з Total Commander.
Радимо скасувати установку і повторити її з працюючого TC!

Якщо ви бачите в рядку введення реальний шлях до вашого TC - можете продовжити
установку. Змінювати вказаний шлях НЕ рекомендується, але... можна. ;)"
;!@InstallEnd@:Language:1058!

;!@Install@!UTF-8!
SetEnvironment="lng=1033"
Title="Installation of the 'Button for work with 7z SFX archives' (v1.18.6)"
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="CustomPath=%%T"
GUIFlags="32+128+1024+2048+4096"
GUIMode="2"
InstallPath="%COMMANDER_PATH%\\Utilites"
RunProgram="hidcon:install_button.bat"
Delete="%%T\\install_button.bat"
;!@InstallEnd@!

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

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

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

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

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

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

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

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

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

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

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

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

-y

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