7zip命令行調用

7z a -tzip -p111 archive.7z txt.txt  壓縮 密碼爲111
7z x -tzip -p111 archive.7z            解壓 密碼爲111

 

 7z.exe 是 7-Zip 的命令行版本。7z.exe 使用 7-Zip 的其它模塊,7za.exe 是7-Zip 的獨立版本,7za.exe 僅支持 7z、zip、gzip、bzip2 和 tar 格式,7za.exe 使用時不會調用其它模塊。

命令行選項 
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}
在方括號內的表達式(“[” 和 “]”之間的字符)是可選的。
在書名號內的表達式(“[” 和 “]”之間的字符)是必須替換的表達式(而且要去掉括號)。

表達式
expression1 | expression2 | ... | expressionN
命令行 及 選項 使用大寫或小寫字母都可以。
首個命令行必須是無選項的參數變量。
選項及其它文件名的輸入順序可以打亂。
帶有空格的通配符或文件名必須加上引號:
"Dir/Program files/*"
Dir/"Program files"/*
通配符是一個鍵盤字符,例如星號(*)或問號(?),當執行添加文件、釋放文件、選定文件、刪除文件等操作時,您可以使用它來代表一個或多個字符。當您不知道真正字符或者不想鍵入完整名稱時,常常使用通配符代替一個或多個字符。
7-Zip 支持和 Windows 相類似的通配符:
“*”可以使用星號代替零個或多個字符。
“?”可以用問號代替名稱中的單個字符。
7-Zip 使用的並不是系統處理通配符的默認方法,因而 7-Zip 不支持其它通配符規則,在系統中 *.* 相當於所有文件。而 7-Zip 會將其視爲任何擴展名的全部文件。所以要處理所有文件您必須使用 * 通配符。
示例:
*.txt
這樣會查找(添加、選定……)所有擴展名是“.txt”的文件

?a*
這樣會查找(添加、選定……)所有第二個字母爲“a”的文件

*1*
這樣會查找(添加、選定……)所有包含“1”的文件

*.*.*
這樣會查找(添加、選定……)所有包含“.”的雙擴展名文件

如果在命令行中沒有文件名,系統將會使用默認通配符“*”。
檔案文件中通配符及文件名的使用限制:通配符及文件名不能包括系統盤符或網址。每個通配符及文件名路徑將被視爲從盤符到當前目錄的完整路徑/從壓縮檔案的根目錄算起的完整路徑。換句話說,路徑的開始部分(在首個斜線(“/”)之前的字符)必須是某個名稱或通配符。通配符及文件名不能以斜線(“/”)結尾。通配符只可以在完整路徑的最後一部分中出現。
示例:
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”中。

命令行
命令行的命令不分大小寫。
更多有關命令行的詳細內容請參閱 語法。
命令要點參考
命令
作用說明
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、Deflate64、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、BZip2、Deflate、BCJ、BCJ2、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、單詞大小爲 32、BCJ 過濾器。
7            最大壓縮:LZMA 最大算法、8 MB 字典大小、BT4 Match finder、單詞大小爲 64、BCJ 過濾器。
9            極限壓縮:LZMA 最大算法、32 MB 字典大小、BT4b Match finder、單詞大小爲 64、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 (更新) 

-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、bzip2、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 (覆蓋模式) 

發佈了3 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章