-sfx (Samorozbaliteľný archív) prepínač 7zip

-sfx (Create SFX archive) switch

Vytvorí samorozbaliteľný archív.

Syntax

-sfx[{SFX_Modul}]
{SFX_Modul}

Určuje SFX modul, ktorý sa začlení do archívu. Tento modul musí byť umiestnený v rovnakom priečinku ako súbor 7z.exe. Ak {SFX_Modul} nie je nastavený, 7-Zip použije štandardný konzolový SFX modul 7zCon.sfx.

SFX_Module Description
7z.sfx Grafická verzia.
7zCon.sfx Konzolová verzia.
7zS.sfx Grafická verzia pre inštalátory.
7zSD.sfx Grafická verzia pre inštalátory (použije MSVCRT.dll).

Všetky SFX moduly sú neskomprimované. Ak chcete moduly skomprimovať, môžete použiť program UPX (http://upx.sourceforge.net). Po skomprimovaní programom UPX sa veľkosť sfx modulov zmenší na 40-50% z pôvodnej veľkosti.

SFX moduly pre inštalátory

SFX moduly pre inštalátory sú začlenené do externého balíka (7z_extra). Tieto moduly si môžeme stiahnuť zo stránky www.7-zip.org. SFX moduly pre inštalátory (7zS.sfx a 7zSD.sfx) nám umožnia vytvoriť si svoje vlastné inštalačné programy, pretože tieto moduly rozbalia archív do dočasného priečinka temp, spustia zadaný program a po skončení programu odstránia súbory z priečinka temp. Samorozbaliteľné archívy pre inštalátory pozostávajú z troch súborov: SFX_Modul, Konfigurácia_inštalátora, Archív_7z. Vytvorenie inštalátora v tvare samorozbaliteľného súboru je možné zadaním príkazu:

copy /b 7zS.sfx + config.txt + archive.7z archive.exe

Ak chceme vytvoriť ešte menší inštalačný balíček, môžeme inštalačné súbory pred začlenením do archívu 7z najskôr rozbaliť.

Prepínač -y použije rozbaľovanie v tichom režime.

Formát konfiguračného súboru inštalátora

Tento konfiguračný súbor obsahuje príkazy pre inštalátor. Súbor začína reťazcom ;!@Install@!UTF-8! a končí reťazcom ;!@InstallEnd@!. Súbor musí byť napísaný v kódovaní znakov UTF-8. Súbor môže obsahovať niektoré alebo aj všetky nastavenia typu:

ID_Retazec="Hodnota"
ID_Retazec Popis
Title Nadpis správy
BeginPrompt Úvodná otázka
Progress Zobrazenie stavu inštalácie. Hodnota môže byť "yes" - áno alebo "no"- nie. Predvolená hodnota je "yes".
RunProgram Príkaz, ktorý sa má spustiť. Predvolená hodnota je "setup.exe". Ak chceme použiť cestu k dočasnému priečinku temp, kde sa rozbalia súbory, môžeme miesto cesty použiť reťazec %%T
Directory Predpona cesty priečinka pre "RunProgram". Predvolená hodnota je ".\\"
ExecuteFile Meno súboru, ktorý sa má spustiť
ExecuteParameters Parametre pre "ExecuteFile"

Môžete použiť ktorékoľvek nastavenie.

Existujú dva spôsoby, akými sa spúšťa inštalačný program: RunProgram a ExecuteFile. RunProgram použijeme vtedy, ak chceme spustiť program z archívu .7z. ExecuteFile použijeme vtedy, ak chceme otvoriť dokument z archívu .7z alebo ak chceme spustiť príkaz v operačnom systéme Windows.

Ak použijeme RunProgram a zadáme prázdnu predponu priečinka: Directory="", systém vyhľadá spustiteľné súbory podľa nasledujúceho poradia:

  1. Priečinok, z ktorého bola nahraná aplikácia (inštalátor).
  2. Dočasný temp priečinok, do ktorého boli rozbalené súbory.
  3. Systémový priečinok Windows.

Príklady konfiguračného súboru

;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Prajete si nainštalovať 7-Zip 4.00?"
RunProgram="setup.exe"
;!@InstallEnd@!
;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Prajete si nainštalovať 7-Zip 4.00?"
ExecuteFile="7zip.msi"
;!@InstallEnd@!
;!@Install@!UTF-8!
Title="Aktualizácia 7-Zip 4.01"
BeginPrompt="Prajete si nainštalovať aktualizáciu 7-Zip 4.01?"
ExecuteFile="msiexec.exe"
ExecuteParameters="/i 7zip.msi REINSTALL=ALL REINSTALLMODE=vomus"
;!@InstallEnd@!

Príklady

7z a -sfx a.exe *.txt

pridá všetky súbory s príponou .txt do samorozbaliteľného archívu a.exe pričom sa použije predvolený konzolový SFX modul.

7z a -sfx7z.sfx a.exe *

pridá všetky súbory do samorozbaliteľného archívu a.exe pričom sa použije grafický SFX modul 7z.sfx.

Príkazy, ktoré môžu použiť tento prepínač

a (Add – Pridať), d (Delete – Odstrániť), u  (Update – Aktualizovať),