Ⅰ 如何使7-zip自解壓文件在解壓時自動運行指定的程序
有這個功能,但是實現起來比較煩瑣!視窗界面不能實現這個功能(我用的是7-Zip 4.55 beta中文版)。可以在命令行版本中實現,自釋放安裝模塊和自釋放模塊是兩個不同模塊,未經壓縮的,還要去下載一個UPX 程序來壓縮此模塊。最終做好的自解壓自動運行程序的文件大小跟winrar做出來的文件差不多大小,還不如用winrar了!
要使用這個功能必須要看懂命令行語法,在命令提示符界面輸入命令完成,我是參考了幫助文檔中的說明來做的。結果還沒有製作成功。過程非常煩瑣!沒有必要折騰自己,軟體是用來方便自己用的。既然一點都不方便,還不如等待軟體開發者盡快完善其功能!其下是摘自幫助文檔中的有關內容:
-sfx (創建自釋放檔案) 選項
創建自釋放檔案。
語法
-sfx[{SFX_Mole}]
{SFX_Mole}
指定將被添加到壓縮檔案的自釋放(SFX)模塊。然而被指定的模塊必須和 7z.exe 文件在同一目錄。如果 {SFX_Mole} 未指定,7-Zip 將使用命令行自釋放模塊 7zCon.sfx。
SFX_Mole 說明
7zC.sfx Windows 版本。
7zCon.sfx 命令行(DOS)版本。
7zS.sfx Windows 安裝版本。
7zSD.sfx Windows 安裝版本(需調用 MSVCRT.dll)。
除 7zC.sfx 之外,大多數的自釋放模塊都是未壓縮的。您可以使用 UPX 程序 (http://upx.sourceforge.net) 來壓縮這些模塊。在使用 UPX 程序壓縮之後,自釋放模塊的大小將比壓縮之前減小 40-50%。
自釋放安裝模塊
自釋放安裝模塊(7zS.sfx 和 7zSD.sfx)可讓您創建軟體的安裝程序。這類模塊將釋放文件到一臨時文件夾,然後運行指定的程序來進行安裝。安裝之後再自動刪除臨時文件。要創建自釋放檔案必須有三個文件:自釋放模塊、安裝程序配置、7z 壓縮檔案。其中安裝程序配置文件是可選的。您可以使用下列命令來創建安裝程序:
/b 7zS.sfx + config.txt + archive.7z archive.exe
請注意上述文件的輸入順序:*.sfx、*.txt、*.7z。最後的 archive.exe 即為生成的安裝程序。
選項 -y 使用在自釋放安裝模塊中可設置釋放時是否為安靜模式。
安裝程序配置文件格式
配置文件包括安裝程序的命令行。文件要以字串 ;!@Install@!UTF-8! 開頭,以 ;!@InstallEnd@! 結尾。且文件必須使用 UTF-8 編碼。文件中還需包含下列變數:
ID_String="Value"
ID_String 說明
Title 對話框信息標題。
BeginPrompt 安裝前提示信息。
RunProgram 欲執行命令。若添加子命令 %%T 則會把文件釋放到系統的臨時目錄。
您可以省略上述任何一部分。
配置文件示例
;!@Install@!UTF-8!
Title="7-Zip 1.00"
BeginPrompt="應用程序將安裝 7-Zip 1.00,是否繼續?"
RunProgram="Setup.exe /T:%%T"
;!@InstallEnd@!
程序將以 BeginPrompt 中的信息提示用戶,再執行 RunProgram 中的命令。然後程序將使用 .inf 文件的內容並調用壓縮包中的 advpack.dll 文件進行安裝。
Ⅱ 批處理如何用7zip命令行創建自解壓文件
新建一個文本,假設為config.txt
在此文本中寫上以下內容(更多擴展內容,自行網路)
;!@Install@!UTF-8!
Title="窗口標題"
BeginPrompt="窗口提示內容"
ExecuteFile="被執行的程序或文件"
;!@InstallEnd@!
然後把您要打包的文件先打包成7z壓縮包。這里假設為myfile.7z
最後把myfile.7z和config.txt,以及7z自解壓模塊7zS.sfx放在一起,並在命令行執行
/b 7zS.sfx+config.txt+myfile.7z myapp.exe
這樣就實現了自解壓加執行程序。
如果要更改圖標啥的,就必須用一些反匯編的軟體去修改7zS.sfx這個文件。