7z.exe 是 7-Zip 的命令行版本。7z.exe 使用 7-Zip 的其它模塊,7za.exe 是7-Zip 的獨立版本,7za.exe 僅支持 7z、zip、gzip、bzip2 和 tar 格式,7za.exe 使用時不會調用其它模塊。html
下載地址1:7-Zip 中文官網
下載地址2:7-Zip 英文官網
下載地址3:7-Zip(壓縮軟件)V9.20 Final簡體中文版
===============================================算法
命令行選項
7z [命令行] [[選項]...] [基本檔案名稱] [[參數變量]...]
7z [command] [[switch]...] [base_archive_name] [[arguments]...]
[參數變量] ::= [選項] | [通配符] | [文件名] | [文件列表]
[選項]::= [選項標記][選項字符][[選項]]
[選項標記] ::= '/' | '-'
[文件列表] ::= @{文件名}
[arguments] ::= [switch] | [wildcard] | [filename] | [list_file]
[switch]::= [switch_symbol][switch_characters][[option]]
[switch_symbol] ::= '/' | '-'
[list_file] ::= @{filename}
在方括號內的表達式(「[」 和 「]」之間的字符)是可選的。
在書名號內的表達式(「[」 和 「]」之間的字符)是必須替換的表達式(並且要去掉括號)。express
表達式
expression1 | expression2 | ... | expressionN
命令行 及 選項 使用大寫或小寫字母均可以。
首個命令行必須是無選項的參數變量。
選項及其它文件名的輸入順序能夠打亂。
帶有空格的通配符或文件名必須加上引號:
"Dir\Program files\*"
Dir\"Program files"\*多線程
通配符
通配符是一個鍵盤字符,例如星號(*)或問號(?),當執行添加文件、釋放文件、選定文件、刪除文件等操做時,您可使用它來表明一個或多個字符。當您不知道真正字符或者不想鍵入完整名稱時,經常使用通配符代替一個或多個字符。
7-Zip 支持和 Windows 相相似的通配符:
「*」可使用星號代替零個或多個字符。
「?」能夠用問號代替名稱中的單個字符。
7-Zip 使用的並非系統處理通配符的默認方法,於是 7-Zip 不支持其它通配符規則,在系統中 *.* 至關於全部文件。而 7-Zip 會將其視爲任何擴展名的所有文件。因此要處理全部文件您必須使用 * 通配符。
示例:
*.txt
這樣會查找(添加、選定……)全部擴展名是「.txt」的文件測試
?a*
這樣會查找(添加、選定……)全部第二個字母爲「a」的文件優化
*1*
這樣會查找(添加、選定……)全部包含「1」的文件ui
*.*.*
這樣會查找(添加、選定……)全部包含「.」的雙擴展名文件編碼
若是在命令行中沒有文件名,系統將會使用默認通配符「*」。
檔案文件中通配符及文件名的使用限制:通配符及文件名不能包括系統盤符或網址。每一個通配符及文件名路徑將被視爲從盤符到當前目錄的完整路徑/從壓縮檔案的根目錄算起的完整路徑。換句話說,路徑的開始部分(在首個斜線(「\」)以前的字符)必須是某個名稱或通配符。通配符及文件名不能以斜線(「\」)結尾。通配符只能夠在完整路徑的最後一部分中出現。
示例:
Dir1\*.cpp
正確
c:\Dir1\*.cpp
錯誤:路徑中不能包括盤符
Dir1\Dir2\g?.txt
正確
Dir1\D?r2\file1.txt
錯誤:只有在以路徑的最後一部分才能使用通配符加密
文件列表
您可使用文件列表來對要操做的文件進行批量操做。在文件中的文件名必須用空格或另起一行隔開。(如使用空格格開,每個文件必須加引號)。
7-Zip 命令行支持多個文件列表同時操做。
舉個例子,這裏有一個文件列表「listfile.txt」包含下列內容:
"My programs\*.cpp"
Src\*.cpp
那麼咱們能夠輸入命令:
7z a -tzip archive.zip @listfile.txt
將「My programs」及「Src」目錄中全部擴展名爲「cpp」的文件添加到壓縮檔案「archive.zip」中。spa
命令行
命令行的命令不分大小寫。
更多有關命令行的詳細內容請參閱 語法。
命令要點參考
====================
命令 做用說明
a 添加
d 刪除
e 釋放
l 列表
t 測試
u 更新
x 完整路徑釋放
====================
a (添加) 命令
添加文件到壓縮檔案。
示例
7z a -tzip archive.zip subdir\*
從 subdir 文件夾添加全部文件到 archive.zip 壓縮檔案。
7z a -tzip Files.zip "Program files\*" -r
從 Program 文件夾添加全部文件到 Files.zip 壓縮檔案。
能夠和此命令結合使用的選項
-i (包括文件名), -m (設置壓縮算法), -p (設置密碼), -r (遞歸子目錄), -t (設置壓縮檔案格式), -u (更新選項), -w (設置工做目錄), -x (排除文件)
其餘命令行: d (刪除), u (更新)
選項: -u (更新選項)
d (刪除) 命令
從壓縮檔案刪除文件。
示例
7z d archive.zip *.bak
從 archive.zip 壓縮檔案中刪除 *.bak 文件。
能夠和此命令結合使用的選項
-i (包括文件名), -m (設置壓縮算法), -p (設置密碼), -r (遞歸子目錄), -u (更新選項), -w (設置工做目錄), -x (排除文件)
其餘命令行: a (添加), u (更新)
選項: -u (更新選項)
e (釋放) 命令
從壓縮檔案中釋放文件到當前目錄中。或者到指定的輸出文件夾。輸出文件夾設置能夠經過 -o (設置輸出文件夾) 選項來更改。
此命令會將全部被釋放的文件放置到一個文件夾。若是您想使用完整路徑釋放文件,您必須使用 x (完整路徑釋放) 命令。
7-Zip 在覆蓋現有文件時會提示用戶如何進行下一步操做。 除非用戶自定義了 -y (全是) 選項。
7-Zip 所支持的下列迴應:
迴應 簡寫 描述
Yes(是) y
No(否) n
Always(老是) a 將全部的詢問以 YES 來對待
Skip(跳過) s 將全部的詢問以 NO 來對待
Quit(退出) q 退出程序
示例
7z e archive.zip
從壓縮檔案 archive.zip 中釋放全部文件到當前文件夾。
7z e archive.zip -oc:\soft *.cpp
從壓縮檔案 archive.zip 中釋放 *.cpp 文件到 c:\soft 文件夾。能夠和此命令結合使用的選項。
-ao (覆蓋模式), -i (包括文件名), -o (設置輸出目錄), -p (設置密碼), -r (遞歸子目錄), -x (排除文件), -y (全是)
其餘命令行: x (完整路徑釋放)
l (列表) 命令
列出壓縮檔案內容。
示例
7z l archive.zip
列出壓縮檔案 archive.zip 的內容。
能夠和此命令結合使用的選項
-i (包括文件名), -r (遞歸子目錄), -x (排除文件)
t (測試) 命令
測試壓縮檔案文件的完整性。
示例
7z t archive.zip *.doc
在壓縮檔案 archive.zip 中測試 *.doc 文件的完整性。
能夠和此命令結合使用的選項
-i (包括文件名), -r (遞歸子目錄), -p (設置密碼), -x (排除文件)
u (更新) 命令
在壓縮檔案文件中使用較新的文件替換掉較舊的文件。
示例
7z u archive.zip *.doc
在壓縮檔案 archive.zip 中更新 *.doc 文件。
能夠和此命令結合使用的選項
-i (包括文件名), -m (設置壓縮算法), -p (設置密碼), -r (遞歸子目錄), -t (設置壓縮檔案格式), -u (更新選項), -w (設置工做目錄), -x (排除文件)
其餘命令行: a (刪除), d (刪除)
選項: -u (更新選項)
x (完整路徑釋放) 命令
在當前目錄中,使用完整路徑從壓縮檔案中釋放文件.或者到指定的輸出文件夾。更多詳細內容請參閱 e (釋放) 命令。
示例
7z x archive.zip
從壓縮檔案 archive.zip 中釋放全部文件到當前文件夾。
7z x archive.zip -oc:\soft *.cpp
從壓縮檔案 archive.zip 中釋放 *.cpp 文件到 c:\soft 文件夾。
能夠和此命令結合使用的選項
-ao (覆蓋模式), -i (包括文件名), -o (設置輸出目錄), -p (設置密碼), -r (遞歸子目錄), -x (排除文件), -y (全是)
其餘命令行: e (釋放
命令行選項
語法
[選項]::= [選項_符號][選項_字符][[選項]]
[選項_符號] ::= '/' | '-' <switch]::= [switch_symbol][switch_characters][[option]]
[switch_symbol] ::= '/' | '-'
在命令行中,一個完整的選項由指定的選項、連字符(-)或斜線(/)組成,並且選項的符號不能使用縮寫。選項名稱不區分大小寫。而一部分選項會包括參數變量,它們是須要區分大小寫的。
選項可使用在命令行中的任何位置。 有關命令行的詳細使用說明請見語法。
選項要點參考
選項 說明
– 阻止選項解析
-ai 附件檔案文件名
-an 不解析檔案名稱
-ao 覆蓋模式
-ax 排除檔案文件名
-i 包括文件名
-m 設置壓縮算法
-o 設置輸出目錄
-p 設置密碼
-r 遞歸子目錄
-sfx 建立自釋放檔案
-si 從StdIn 讀取數據
-so 從StdOut 寫入數據
-t 設置檔案類型
-u 更新選項
-v 建立分卷
-w 設置工做目錄
-x 文件名排除
-y 全是
-- (阻止選項解析) 選項
在命令行中使「--」後的選項開關「-」都失效。這樣就容許在命令行中使用文件名以「-」開頭的文件。
語法
--
示例
7z t -- -ArchiveName.7z
測試 -ArchiveName.7z 壓縮檔案.
-ai (附件檔案文件名) 開關
指定附加文件,包括壓縮檔案文件名及通配符。此選項可同時附加多個類型。
語法
-ai[[recurse_type]][file_ref]
[recurse_type] ::= r[- | 0]
[file_ref] ::= @{listfile} | !{wildcard}
-an (不解析檔案名稱) 選項
不解析命令行中的 archive_name 區域。此選項必須和 -i (附加文件) 開關一塊兒使用。好比您爲壓縮檔案使用列表文件,您就須要指定 -ai 選項,因此您須要禁止解析命令行中的 archive_name 區域。
語法
-an
示例
7z t -an -ai!*.7z -ax!a*.7z
測試除 a*.7z 以外的 *.7z 壓縮檔案。
能夠和此選項結合使用的命令
e (釋放), l (列表), t (測試), x (完整路徑釋放)
其它選項: -i (附加文件), -x (排除文件)
-ao (覆蓋模式) 選項
指定在釋放期間如何覆蓋硬盤上現有的同名文件。
語法
-ao[a | s | u ]
參數 說明
-aoa 直接覆蓋現有文件,而沒有任何提示。
-aos 跳過現有文件,其不會被覆蓋。
-aou 若是相同文件名的文件以存在,將自動重命名被釋放的文件。舉個例子,文件 file.txt 將被自動重命名爲 file_1.txt。
-aot 若是相同文件名的文件以存在,將自動重命名現有的文件。舉個例子,文件 file.txt 將被自動重命名爲 file_1.txt。
示例
7z x test.zip -aoa
從壓縮檔案 test.zip 中釋放全部文件並卻不作提示直接覆蓋現有文件。能夠和此選項結合使用的命令
e (釋放), x (完整路徑釋放)
其它選項: -y (全是)
-ax (排除檔案文件名) 選項
指定必須從操做中排除的壓縮檔案,此選項可同時排除多個類型。
語法
-ax[[recurse_type]][file_ref]
[recurse_type] ::= r[- | 0]
[file_ref] ::= @{listfile} | !{wildcard}
有關此選項參數的詳細信息請參見 -i (附加文件) 選項。
示例
7z t -an -ai!*.7z -ax!a*.7z
測試除 a*.7z 以外的 *.7z 壓縮檔案,能夠和此選項結合使用的命令
e (釋放), l (列表), t (測試), x (完整路徑釋放)
其它選項: -i (附加文件), -an (不解析檔案名稱)
參數
[recurse_type]
指定通配符及文件名,此選項在這裏必須使用。若是此選項未被指定,那麼將自動使用遞歸。更多詳細信息請參見 -r (遞歸子目錄) 選項。
[recurse_type] ::= r[- | 0]
[file_ref]
指定要處理的文件的文件名、通配符或文件列表。
[file_ref] ::= @{listfile} | !{wildcard}
選項 說明
{listfile} 指定文件列表的文件名。參見 列表文件 的說明。
{wildcard} 指定通配符或文件名。
示例
7z t -an -air!*.7z
在當前目錄及子目錄下測試 *.7z 壓縮檔案,能夠和此選項結合使用的命令
a (添加), d (刪除), e (釋放), l (列表), t (測試), u (更新), x (完整路徑釋放)
其它選項: -ax (排除檔案文件名), -an (不解析檔案名稱)
-i (附加文件) 選項
指定附加文件或一類文件,此選項可附件添加多個類型。
語法
-i[[recurse_type]][file_ref]
[recurse_type] ::= r[- | 0]
[file_ref] ::= @{listfile} | !{wildcard}
參量
[recurse_type]
此值在這個選項中必須使用。若是此選項的值不存在,那麼將使用被 -r (遞歸子目錄) 選項所指定的值。更多詳細內容請參閱 -r (遞歸子目錄) 選項。
[recurse_type] ::= r[- | 0]
[file_ref]
指定文件名或通配符、或使用文件列表來添加文件。
[file_ref] ::= @{listfile} | !{wildcard}
參數 說明
{listfile} 指定文件列表。請參考 文件列表 相關信息。
{wildcard} 指定文件名或通配符。
示例
7z a -tzip src.zip *.txt -ir!DIR1\*.cpp
從當前目錄中添加 *.txt 文件,和 DIR1 目錄及其子目錄中的 *.cpp 文件到 src.zip 壓縮檔案。能夠和此選項結合使用的命令
a (添加), d (刪除), e (釋放), l (列表), t (測試), u (更新), x (完整路徑釋放)
其它選項: -r (遞歸子目錄), -x (排除文件)
-m (設置壓縮算法) 選項
指定壓縮算法。
語法
-m[method_parameters]
此選項的格式依壓縮檔案的類型而定。
Zip參數 默認值 說明
x=[0 | 5 | 9 ] 5 設置壓縮等級。
m={MethodID} Deflate 設置壓縮算法:Copy、Deflate、Deflate6四、BZip2。
fb={NumFastBytes} 32 設置 Deflate 編碼器的單詞大小。
pass={NumPasses} 1 設置 Deflate 編碼器的傳送大小。
X=[0 | 5 | 9 ]
設置壓縮等級
壓縮等級 說明
0 不壓縮。
5 默認的壓縮等級。
9 最大壓縮等級。壓縮後的文件會更小。可是在壓縮的時候會比較慢並且須要較多的物理內存。
fb={NumFastBytes} 設置 Deflate 編碼器的單詞大小。您能夠在 3 到 255 範圍以內更改。在 Deflate 算法下,它的默認值是 32;在 Deflate 64 算法下,它的默認值是 64。若是要壓縮的多個文件中,有不少排列相同的字節,好比說內容及格式極爲相同的兩個純文本文檔,那麼在壓縮的時候若是有較大的單詞大小,將會在必定程度上提升壓縮比。因此一般狀況下,其數量越大,壓縮後的文件就會越小。可是在壓縮和解壓縮的時候會比較慢並且須要較多的物理內存。
pass={NumPasses} 設置 Deflate 編碼器的傳送大小。您能夠在 1 到 4 範圍以內更改。在 Deflate 算法下,它的默認值是 1;在 Deflate 64 算法下,它的默認值是 3。此項可略微提高壓縮比,但並不明顯。
Gzip
除了 GZip 不支持「儲存」壓縮算法以外,GZip 和 Zip 同樣使用着相同的參數。
7z參數
默認 說明
x=[0 | 1 | 5 | 7 | 9 ]
5 設置壓縮等級。
s=[off | on | [e] [{N}f] [{N}b | {N}k | {N}m | {N}g]
on 設置固實模式。
f=[off | on]
on 開啓或關閉可執行文件壓縮過濾器。
hc=[off | on]
on 開啓或關閉檔案文件頭壓縮。
hcf=[off | on]
on 開啓或關閉檔案文件頭徹底壓縮。
he=[off | on]
off 開啓或關閉檔案文件頭加密。
b{C1}[s{S1}]:{C2}[s{S2}]
設置編碼器之間綁定。
{N}={MethodID}[:param1][:param2][..]
LZMA設置壓縮算法:LZMA、PPMd、BZip二、Deflate、BCJ、BCJ二、Copy。
mt=[off | on]
off
設置多線程模式。
x=[0 | 1 | 5 | 7 | 9 ]
設置壓縮等級
壓縮等級 說明
0 不壓縮.
1 快速壓縮:LZMA 快速算法、32KB 字典大小、HC3 Match finder、BCJ 過濾器。
5 正常壓縮:LZMA 標準算法、2 MB 字典大小、BT4 Match finder、單詞大小爲 3二、BCJ 過濾器。
7 最大壓縮:LZMA 最大算法、8 MB 字典大小、BT4 Match finder、單詞大小爲 6四、BCJ 過濾器。
9 極限壓縮:LZMA 最大算法、32 MB 字典大小、BT4b Match finder、單詞大小爲 6四、BCJ2 過濾器。
s=[off | on | [e] [{N}f] [{N}b | {N}k | {N}m | {N}g)] 開啓或關閉固實模式。此選項的默認值是 s=on。開啓或關閉固實壓縮檔案模式。在建立固實壓縮檔案模式中,它把壓縮檔案中的全部文件都當成一個連續數據流來看待。一般狀況下,固實壓縮可增長壓縮比,特別是在添加大量小文件的時候。
e 爲每一種文件擴展名使用單獨的固實數據流
{N}f 設置在一個固實數據流種文件的個數
{N}b | {N}k | {N}m | {N}g 設置固實數據流的大小(字節)
不一樣的壓縮等級對固實數據流大小的限制:
壓縮等級 大小 儲存
快速 16 MB
正常 256 MB
最大 1 GB
極限 4 GB
對固實數據流大小的限制雖然能應響到壓縮比,可是它仍是有至關多的優點:
萬一壓縮檔案損壞,並不會丟失全部數據。減小了文件的釋放時間。
在當前的版本中,您只能更新在壓縮時未選擇「建立固實壓縮檔案」的壓縮檔案。也就是說當前版本不支持固實壓縮檔案的更新。
示例:
-s=100f10m
設置固實模式使每一個固實數據流種最多 100 文件,而且最大 10 MB 。
f=[off | on]
開啓或關閉可執行文件壓縮過濾器:dll、exe、ocx、sfx、sys。它用於 BCJ2 過濾器(使用極限壓縮)及 BCJ 過濾器中。此選項的默認值是 f=on.
hc=[off | on]
開啓或關閉檔案文件頭壓縮。此選項的默認值是 hc=on。若是開啓檔案文件頭壓縮,一部分檔案的文件頭將使用 LZMA 算法進行壓縮。
hcf=[off | on]
開啓或關閉檔案文件頭徹底壓縮。此選項的默認值是 hcf=on。若是開啓檔案文件頭徹底壓縮,那麼此壓縮檔案只有 7-Zip 2.30 beta 25 及更高的版本才能支持。
he=[off | on]
開啓或關閉檔案文件頭加密。此選項的默認值是 he=off。
{N}
設置算法的順序。它也能夠用算法關聯參數。最小值爲 0。含有從號的算法將被首先使用。
b{C1}[s{S1}]:{C2}[s{S2}]
將輸出流 S1 及編碼器 C2 中的輸入流 S2 與編碼器 C1 綁定。若是未指定流的大小,那麼大小將爲 0。一般狀況下,編碼器有一個輸入流及一個輸出流。而在 7z 中,一些編碼器有多個輸入及輸出流。
舉個例子,BCJ2 編碼器有有關輸入流及四個輸出流。
mt=[off | on]
開啓或關閉多線程壓縮模式。在多線程支持模式中,7-Zip 將使用兩個線程來進行壓縮。這樣的話,對於多處理器系統,那麼壓縮速度將提高 70-80%。對於 Pentium 4 超線程處理器,壓縮速度將提高 25% 左右。但解壓縮時只使用單獨線程。注意!此選項僅對 LZMA 壓縮算法有效。
{N}={MethodID}[:param1][:param2] ... [:paramN]
設置壓縮算法。在 7z 格式中,您可使用許多壓縮算法。此選項的默認算法是 LZMA。此參數必須是下列格式中的任意一種:
{ParamName}={ParamValue}。
{ParamName}{ParamValue},{ParamValue} 是一個數值,而且 {ParamName} 中不包含數字。
支持的壓縮算法:
MethodID 說明
LZMA 基於 LZ 之上的壓縮算法。
PPMd 基於 Dmitry Shkarin 之上的算法 PPMdH 並加以優化。一般能對純文本提供高壓縮比及較快的解壓縮速度。
Bzip2 基於 BWT 的標準壓縮算法。一般能對純文本提供較高壓縮比及至關不錯的解壓縮速度。
Deflate ZIP 及 GZip 格式的標準壓縮算法。沒有很高的壓縮比。可是它擁有十分快的壓縮及解壓縮速度。Deflate 壓縮算法只支持 32 KB 字典大小。
BCJ (CALL、JUMP)32 位 x86 可執行文件轉換器。
BCJ2 (CALL、JUMP、JCC)32 位 x86 可執行文件轉換器(第二版)。
Copy 不壓縮。
LZMA
LZMA 是基於 Lempel-Ziv(由以色列數學家 A.Lempel 和 J.Ziv 共同開發的壓縮算法)之上的壓縮算法。它能提供至關快的解壓縮速度(約比壓縮快 10 到 20 倍)。對內存的需求也不盡相同(詳細信息請參見 d={Size}[b|k|m] 選項)。
參數 默認值 說明
a=[0|1|2] 1 設置壓縮等級
d={Size}[b|k|m] 20 設置字典大小
mf={MF_ID} bt4 設置匹配器
fb={N} 32 設置緊縮字節數量
lc={N} 3 設置 Literal Context 塊數 - [0, 8]
lp={N} 0 設置 Literal Pos 塊數 - [0, 4]
pb={N} 2 設置 Pos 塊數 - [0, 4]
a=[0|1|2]
設置壓縮等級:0=快速、1=正常、2=最大壓縮。默認值爲 1。
d={Size}[b|k|m]
設置 LZMA 壓縮算法的字典大小。您可使用字節、KB 或 MB 來指定此項。字典大小的最大值爲 256 MB=2^28 字節。正常模式下,LZMA 的字典大小默認值爲 21(2 MB) ;最大模式(-mx=7)下爲 23(8 MB);極限模式(-mx=9)下爲 25(32 MB)。若是您未指定 [b|k|m] 項,字典大小將自動根據壓縮等級來選擇相應的單位。對於 LZMA 算法的文件解壓縮,若壓縮文件的字典大小爲 64 MB,則解壓縮時就須要 64 兆可用的物理內存。
mf={MF_ID}
設置 LZMA 壓縮算法的匹配器。默認算法爲 bt4。bt* 類的算法所需的內存比 pat* 類所需的內存少。一般狀況下 bt4 的工做速度比 pat* 快得多,然而部分文件格式在 pat* 算法中能夠工做得很快。hc* 類算法並無很好得壓縮比,可是它與快速模式(a=0)結合使用一般會工做得至關快。所需內存依字典大小而定(參見下表)。
MF_ID 所需內存 說明
bt2 d×9.5 + 1 MB 二進制樹;2 散列字節。
Bt3 d×9.5 + 65 MB 二進制樹;2-3(完整) 散列字節。
Bt4 d×9.5 + 6 MB 二進制樹;2-3-4 散列字節。
Bt4b d×9.5 + 34 MB 二進制樹;2-3-4(大) 散列字節。
Pat2r d×26 + 1 MB Patricia 樹;2-位節點;可移動。
Pat2 d×38 + 1 MB Patricia 樹;2-位節點。
Pat2h d×38 + 77 MB Patricia 樹;2-位節點;2-3 散列字節。
Pat3h d×62 + 85 MB Patricia 樹;3-位節點;2-3 散列字節。
Pat4h d×110 + 101 MB Patricia 樹;4-位節點;2-3 散列字節。
Hc3 d×5.5 + 1 MB Hash Chain;-3 散列字節。
Hc4 d×5.5 + 6 MB Hash Chain;2-3-4 散列字節。
注意:操做系統一樣須要一部分物理內存來維持系統得正常運行,因此至少要剩餘 32 可用物理內存。
fb={N}
設置 LZMA 壓縮算法的緊縮字節。有效範圍從 5 到 255。正常模式下默認值爲 32;最大模式下爲 64 。一般狀況下,較大的數值能略微提升壓縮比。但同時也會下降壓縮速度。
lc={N}
設置 Literal Context 位數。有效範圍從 0 到 8。默認值爲 3。有時壓縮檔案中含有大文件會自動使用 lc=4。
lp={N}
設置 Literal Pos 位數。有效範圍從 0 到 4。默認值爲 0。
pb={N}
設置 Pos 位數。有效範圍從 0 到 4。默認值爲 2。
PPMd
PPMd 是 PPM-based 壓縮算法的簡寫。它基於 Dmitry Shkarin 的算法 PPMdH 並對其源代碼加以優化。PPMd 一般能對純文本提供高壓縮比及較快的解壓縮速度。壓縮和解壓縮的速度徹底相同,所需的內存大小也同樣。
參數 默認值 說明
mem={Size}[b|k|m] 24 設置 PPMd 算法使用內存。
o={Size} 6 設置 PPMd 算法壓縮命令。
mem={Size}[b|k|m]
設置 PPMd 算法使用的內存多少。您可使用字節、KB 或 MB 來指定此項。最大值爲 2 GB=2^31 字節;默認值爲 24(16MB)。若是您未指定 [b|k|m] 項,字典大小將自動根據壓縮等級來選擇相應的單位。PPMd 在壓縮和解壓縮時所需的內存大小是相同的。
o={Size}
設置 PPMd 算法壓縮命令。其大小必須在 [2,32] 範圍內。默認值爲 6。
BCJ2
BCJ2 是 32 位 x86 可執行文件轉換器(第二版)。它經過轉換分支指令來對文件進行進一步壓縮。
BCJ2 編碼器有一個輸入流和四個輸出流:
s0:幹流。提供進一步的壓縮。
s1:CALL 值轉換流。提供進一步的壓縮。
s2:JUMP 值轉換流。提供進一步的壓縮。
s3:服務流。它已經備壓縮過。
若是使用 LZMA 壓縮算法,s1 及 s2 流的字典大小將會比 s0 流的小(512 KB)。
示例
7z a -tzip archive.zip *.jpg -m0
不壓縮而直接將 *.jpg 文件添加到 archive.zip 檔案。
7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt
添加 *.exe 及 *.dll 文件到固實壓縮檔案 archive.7z。使用 LZMA 壓縮算法、2 MB 字典大小及 BCJ 轉換器。壓縮將開啓多線程優化(若是可用)。
7z a -t7z archive.7z *.exe *.dll -m0=BCJ2 -m1=LZMA:d23 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3
添加 *.exe 及 *.dll 文件到壓縮檔案 archive.7z。使用 LZMA 壓縮算法、BCJ2 轉換器、爲主輸出流(s0)使用 8 MB 字典大小、LZMA 算法爲 BCJ2 轉換器的 s1 及 s2 輸出流使用 512 KB 字典大小。
7z a -t7z archive.7z *.txt -m0=PPMd
添加 *.txt 文件到壓縮檔案 archive.7z。 使用 PPMd 壓縮算法。
能夠和此選項結合使用的命令
a (添加), d (刪除), u (更新)
其它選項: -t (設置壓縮檔案格式)
-p (設置密碼) 選項
指定密碼。
語法
-p{password}
{password}
指定密碼。
示例
7z x archive.zip -psecret
將設有密碼「secret」的壓縮檔案 archive.zip 中全部文件釋放。能夠和此選項結合使用的命令:
a (添加), d (刪除), e (釋放), t (測試), u (更新), x (完整路徑釋放)
-r (遞歸子目錄) 選項
把命令行中的通配符及文件名以指定的方法對待。
語法
-r[- | 0]
選項 說明
-r 開啓遞歸子目錄。對於 e (釋放)、l (列表)、t (測試)、x (完整路徑釋放) 這些在壓縮檔案中操做的命令, 會默認使用此選項。
-r- 關閉遞歸子目錄。對於 a (添加)、d (刪除)、u (更新) 等全部需掃描磁盤文件的命令,會默認使用此選項。
-r0 開啓遞歸子目錄。但只應用於通配符。
示例
7z l archive.zip -r- *.doc
列出在 archive.zip 壓縮檔案中根目錄下的 *.doc 文件。
7z a -tzip archive.zip -r src\*.cpp src\*.h
將 src 目錄及其子目錄中的 *.cpp 及 *.h 文件添加到 archive.zip 壓縮檔案。
能夠和此選項結合使用的命令
a (添加), d (刪除), e (釋放), l (列表), t (測試), u (更新), x (完整路徑釋放)
其它選項: -i (附加文件), -x (排除文件)
-sfx (建立自釋放檔案) 選項
建立自釋放檔案。
語法
-sfx[{SFX_Module}]
{SFX_Module}指定將被添加到壓縮檔案的自釋放(SFX)模塊。然而被指定的模塊必須和 7z.exe 文件在同一目錄。若是 {SFX_Module} 未指定,7-Zip 將使用命令行自釋放模塊 7zCon.sfx。
SFX_Module 說明
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 壓縮檔案。其中安裝程序配置文件是可選的。您可使用下列命令來建立安裝程序:
copy /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 文件進行安裝。
示例
7z a -sfx a.exe *.txt
添加 *.txt 文件到自釋放檔案 a.exe 並使用默認的命令行自釋放模塊。
7z a -sfx7zC.sfx a.exe * -r
添加全部文件到自釋放檔案 a.exe 並使用 7zC.sfx Windows 版本的自釋放模塊。
能夠和此選項結合使用的命令
a (添加), d (刪除), u (更新)
v
-si (從 stdin 讀取數據) 選項
使 7-Zip 從 stdin 中使用數據(標準輸入流)。
語法
-si{file_name}
{file_name}
爲要壓縮的數據指定一個將要儲存在壓縮檔案中的名稱。若是 file_name 未被指定,數據將被儲存而沒有名稱。
注意:當前版本的 7-Zip 不支持從 stdin 中讀取壓縮檔案。
示例
7z a archive.gz -tgzip -siDoc2.txt [ Doc.txt
使用 Doc2.txt 文件名壓縮輸入流從文件 Doc.txt 到壓縮檔案 archive.gz。
能夠和此選項結合使用的命令
a (添加), u (更新)
-so (從 stdout 寫入數據) 選項
使 7-Zip 從 stdout 中使用數據(標準輸出流)。
語法
-so
示例
7z x archive.gz -so ] Doc.txt
解壓縮 archive.gz 輸出流並將該輸出流寫入到 Doc.txt 文件。
7z a dummy -tgzip -so Doc.txt ] archive.gz
壓縮 Doc.txt 輸出流並將該輸出流寫入到 archive.gz 壓縮檔案。
能夠和此選項結合使用的命令
a (添加), e (釋放), u (更新), x (完整路徑釋放)
-t (設置壓縮檔案格式) 選項
指定壓縮檔案格式。
語法
-t{archive_type}
{archive_type}指定壓縮檔案格式。它們能夠是:zip、7z、rar、cab、gzip、bzip二、tar 或其它格式。而默認值是 7z 格式。
示例
7z a -tzip archive.zip *.txt
使用 zip 格式從當前目錄中添加全部 *.txt 文件到壓縮檔案 archive.zip。
能夠和此選項結合使用的命令:
a (添加), u (更新)
-u (更新選項) 選項
指定壓縮檔案中文件的更新及建立的方式。
語法
-u[-][action_set][!{new_archive_name}]
[action_set] ::= [state_action]...
[state_action] ::= [state][action]
[state] ::= p | q | r | x | y | z | w
[action] ::= 0 | 1 | 2 | 3
參量
連字符(-)
對原壓縮檔案不進行任何更新。
{new_archive_name} 指定新壓縮檔案的路徑。
[state]
[state] ::= p | q | r | x | y | z | w
每一個文件名都會賦予下列六個變量:
[state]
狀態說明 磁盤上的文件 壓縮檔案中的文件
p文件在壓縮檔案中,但並不和磁盤上的文件相匹配。 存在,但並不匹配
q文件在壓縮檔案中,但磁盤上並不存在。 不存在 存在
r文件不在壓縮檔案中,但磁盤上存在。 存在 不存在
x壓縮檔案中的文件比磁盤上的文件新。 較舊 較新
y壓縮檔案中的文件比磁盤上的文件舊。 較新 較舊
z壓縮檔案中的文件和磁盤上的文件相同。 相同 相同
w不能檢測文件是否較新(時間相同但大小不一樣) ? ?
[action]
爲適當的 [state] 指定動做。
[action] ::= 0 | 1 | 2 | 3
您能夠指定下列四個動做變量中的任意一個:
[action]
說明
0 忽略文件(在壓縮檔案中不爲此文件建立項目)
1 複製文件(用壓縮檔案中的新文件覆蓋舊文件)
2 壓縮文件(將磁盤上的新文件壓縮到檔案中)
3 建立剔除項(釋放過程當中將刪除文件或目錄項)。此功能只支持 7z 格式。
注意
任何的更新命令(如 a (添加)、d (刪除)、u (更新))均可以被分配到下列項目中。
下列表格中顯示的是更新命令的動做設置。
示例
7z u c:\1\exist.7z -u- -up0q3x2z0!c:\1\update.7z * -r
建立新壓縮檔案 update.7z 並將當前目錄中的 exist.7z 壓縮檔案裏全部不一樣文件寫入此壓縮檔案。並不更改 exist.7z 壓縮檔案的內容。能夠和此選項結合使用的命令:
a (添加), d (刪除), u (更新)
-v (建立分卷) 選項
指定分卷大小。
語法
-v{Size}[b | k | m | g]
{Size}[b | k | m | g]
指定分卷大小,可使用字節、KB(1 KB=1024 字節),MB(1 MB = 1024 KB)或 GB(1 GB = 1024 MB)。若是您只指定了 {Size},7-zip 將把它視爲字。您能夠同時指定多個 -v 選項。
示例
7z a a.7z *.txt -v10k -v15k -v2m
建立 a.7z 分卷壓縮檔案。第一個分卷爲 10 KB,第二個爲 15 KB,剩下所有爲 2 MB。
能夠和此選項結合使用的命令
a (添加)
-w (設置工做目錄) 選項
爲文件壓縮設置臨時的工做目錄。默認狀況下,7-Zip 新建一個壓縮檔案時,會臨時在當前目錄建立一個基本壓縮檔案。然而經過指定此選項,您能夠設置基本壓縮檔案的生成目錄,也就是工做目錄。當壓縮完成時,它將會被重命名爲壓縮前您所指定的文件名,而後刪除在臨時目錄中的原始壓縮檔案。
語法
-w[{dir_path}]
{dir_path} 指定目標文件夾。
若是 [dir_path] 未指定,那麼 7-Zip 將使用 Windows 默認的臨時目錄。
示例
7z a -tzip archive.zip *.cpp -wc:\temp
添加 *.cpp 文件到 archive.zip 壓縮檔案,並將臨時壓縮檔案建立到 c:\temp 文件夾。
能夠和此選項結合使用的命令
a (添加), d (刪除), u (更新)
-x (排除文件) 選項
指定某一文件或某一類文件從操做中排除,此選項可同時排除多個類型。
語法
-x[[recurse_type]][file_ref]
[recurse_type] ::= r[- | 0]
[file_ref] ::= @{listfile} | !{wildcard}
更多詳細內容請參閱 -i (附加文件) 選項。
示例
7z a -tzip archive.zip *.txt -x!temp.*
添加除 temp.* 文件以外的全部 *.txt 文件到壓縮檔案 archive.zip。能夠和此選項結合使用的命令:
a (添加), d (刪除), e (釋放), l (列表), t (測試), u (更新), x (完整路徑釋放)
其它選項: -r (遞歸子目錄), -i (附加文件)
-y (全是) 選項
使 7-Zip 執行命令時的大多數提示失效。您可使用此選項來阻止在 e (釋放) 和 x (完整路徑釋放) 命令中文件覆蓋時的提示。
語法 -y 示例
7z x src.zip -y 從 src.zip 釋放全部文件。全部的覆蓋提示將被阻止且全部相同文件名的文件將被覆蓋。能夠和此選項結合使用的命令:
e (釋放), x (完整路徑釋放)
其它選項: -ao (覆蓋模式)