-sfx (自己解凍書庫の作成)スイッチ

自己解凍書庫を作成します。

文法

-sfx[{SFX_Module}]
{SFX_Module}

書庫に結合される SFX モジュールを選択します。 このモジュールは 7z.exe と同じディレクトリに置かれている必要があります。 {SFX_Module} を割り当てない場合、 標準のコンソール SFX モジュールの 7zCon.sfx を使用します。

SFX_Module 説明
7z.sfx Windows バージョン
7zCon.sfx コンソール バージョン
7zS.sfx インストーラーのWindows バージョン
7zSD.sfx インストーラーのWindows バージョン (MSVCRT.dll を使用)

全ての SFX モジュールは圧縮されていません。 ただし、これらのモジュールは UPX プログラム (http://upx.sourceforge.net) を用いて圧縮することが可能です。 UPX プログラムで SFX モジュールを圧縮すると、元のサイズの 40 〜 50 %程になります。

インストーラ用の SFX モジュール

インストーラ用のSFXモジュールはextarnalパッケージ(7z_extra)に含まれています。 このインストールプログラムを作成するためのモジュール(7zS.sfx, 7zSD.sfx)は www.7-zip.org からダウンロードすることができます。 このモジュールは書庫を一旦一時フォルダに展開し、指定されたプログラムの実行後にファイルを削除します。 インストーラ用自己解凍書庫は必ず「インストーラモジュール、インストーラ設定、7z書庫」の3個のファイルを 連結させて作成してください。 インストーラー用自己解凍書庫を作成するには、次のコマンドを使用できます:

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

インストールファイルが 7z 書庫に格納される前で圧縮されていない場合、 最適な小さいサイズのインストールパッケージで書庫化することが可能です。

インストーラモジュールに -y スイッチを選択すると、解凍時に静寂モードになります。

インストーラ 設定ファイルの書式

設定ファイルはインストーラーのコマンドも含みます。 ファイルは ;!@Install@!UTF-8!で始まり、 ;!@InstallEnd@! で終わります。 設定ファイルは UTF-8 コードで書かれ、 次のような文字列の組み合わせである必要があります:

ID_String="Value"

ID_String 説明
Title メッセージのタイトルです。
BeginPrompt 開始プロンプトメッセージです。
Progress 進捗を表示するか否か。"yes" か "no" を指定できます。デフォルトの値は "yes" です。
RunProgram 実行コマンドです。デフォルトの値は "setup.exe" です。サブストリング %%T はファイルが展開された一時フォルダのパスと置き換わります。
Directory "RunProgram" のディレクトリ プレフィックス。デフォルトの値は ".\\" です。
ExecuteFile 実行ファイルの名前。
ExecuteParameters "ExecuteFile" のパラメータ。

どの組み合わせも省略することができます。

インストールの際にプログラムを実行するには2つの方法: RunProgramExecuteFileがあります。 .7z 書庫からプログラムを実行したいなら、RunProgramを使用します。 .7z 書庫からドキュメントを開いたり Windowsのコマンドを実行したい場合はExecuteFileを使用します。

RunProgramを使用し、空のディレクトリ プレフィックス: Directory=""を指定した場合、 システムは実行ファイルを次の順序で検索します:

  1. アプリケーション (インストーラ) が読み込まれたディレクトリ。
  2. ファイルが展開された一時フォルダ。
  3. Windowsのシステムディレクトリ。

コンフィグファイルの例

;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
RunProgram="setup.exe"
;!@InstallEnd@!

;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
ExecuteFile="7zip.msi"
;!@InstallEnd@!

;!@Install@!UTF-8!
Title="7-Zip 4.01 Update"
BeginPrompt="Do you want to install the 7-Zip 4.01 Update?"
ExecuteFile="msiexec.exe"
ExecuteParameters="/i 7zip.msi REINSTALL=ALL REINSTALLMODE=vomus"
;!@InstallEnd@!

使用例

7z a -sfx a.exe *.txt

自己解凍書庫 a.exe に ファイル *.txt をデフォルト SFX モジュールを使って追加します。

7z a -sfx7z.sfx a.exe *

自己解凍書庫 a.exe に すべてのファイルを 7z.sfx (Windowos バージョンの SFX モジュール) を使って追加します。

このスイッチと共に使用することができるコマンド

a (追加), d (削除), u (更新),