7-Zip

導入

ダウンロード

7-Zip Portable | PortableApps.com

更新履歴

更新履歴はHISTORY of the 7-Zipで確認できます。バージョン15以降は公開された西暦の下二桁を表しており、メジャーバージョンの意味とはなっていません。

バージョン リリース日
9.20 2010/11/18
 
15.11 beta 2015/11/14
15.12 ※1 2015/11/19
15.14 2015/12/31
 
16.04 2016/10/04
17.00 beta 2017/04/29
 
18.01 2018/01/28
18.03 bata 2018/03/04
18.05 2018/04/30
※1 解凍・圧縮ソフト「7-Zip」v15.12が公開、5年ぶりの正式リリース - 窓の杜

3つのアプリケーション

7-Zipに含まれる実行ファイルは、それぞれ次のアプリケーションです。

7za.exeは7-Zipのスタンドアローン版で、外部のモジュールを使用しません。Command Line Version User's Guide

表示言語の設定

アプリケーションの表示言語は、メニューの【ツール → オプション】の[言語]タブで変更できます。その設定がエクスプローラのコンテキストメニューに反映されないときには、OSを再起動します。

圧縮 (Compress)

エクスプローラでファイルを右クリックし、【7-Zip → 圧縮】を選択します。もしくは7-Zip File Managerを起動しそのウィンドウ上へドロップするか、ファイルを選択した状態で[追加]をクリックします。

暗号化

圧縮時にパスワードを指定することで、展開時にパスワードを要求できます。さらにそのときに[ファイル名を暗号化]をチェックしておくことで、ファイル一覧を表示する前にパスワードを要求でき、ファイル名も隠蔽できます。

展開 (Extract) / 解凍

エクスプローラでファイルを右クリックし、【7-Zip → 展開】を選択します。

7-Zip File Managerでの展開

7-Zip File Managerから特定のファイルを展開するには、それを選択して[展開]を実行します。

そのとき複数のファイルを選択すれば、それらを一括して展開できます。それぞれにフォルダが作成されないようにするには、展開先のパスの末尾の「*\」を削除します。もしくはコンテキストメニューの【7-Zip → ここに展開】から実行します。

7-Zip File Manager

リストビューで表示されるファイルを削除すると、ファイルの実体が削除されます。

オプション

管理者権限を持たないユーザーがコンテキストメニューを編集すると、「イベントはどのサブスクライバーも呼び出すことができませんでした」と表示されますが、設定は反映されます。

設定や使用履歴の情報は、レジストリの[HKEY_CURRENT_USER\Software\7-Zip]で管理されます。

  キー
[追加]での圧縮先のパス [HKEY_CURRENT_USER\Software\7-Zip\Compression\ArcHistory]
[展開]での展開先のフォルダ [HKEY_CURRENT_USER\Software\7-Zip\Extraction\PathHistory]
[コピー]でのコピー先のフォルダ [HKEY_CURRENT_USER\Software\7-Zip\FM\CopyHistory]
メニューの【表示 → フォルダー履歴】のフォルダ [HKEY_CURRENT_USER\Software\7-Zip\FM\FolderHistory]

コマンドライン

Usage: 7z command [switches...] archive_name [file_names...] [@listfiles...]
Command Line Syntax | 7-Zip

archive_nameの拡張子を省略すると、.7zとなります。

Commands
  機能
a アーカイブにファイルを追加する ※1
u アーカイブのファイルを更新する ※1
b Benchmark
d Delete files from archive
e Extract files from archive (without using directory names)
l List contents of archive
t Test integrity of archive
x eXtract files with full paths
Command Line Commands 7z.exe

※1 Difference between Add and Update? - PowerArchiver Forums

Switches
  機能
-ai[r[-|0]]{@listfile|!wildcard} Include archives
-ax[r[-|0]]{@listfile|!wildcard} eXclude archives
-bd Disable percentage indicator
-i[r[-|0]]{@listfile|!wildcard} Include filenames
-x[r[-|0]]]{@listfile|!wildcard} eXclude filenames
-m{Parameters} set compression Method
-o{Directory} set Output directory
-p{Password} set Password
-r[-|0] Recurse subdirectories
-scs{UTF-8 | WIN | DOS} set charset for list files
-sfx[{name}] Create SFX archive
-si[{name}] read data from stdin
-slt show technical information for l (List) command
-so write data to stdout
-ssc[-] set sensitive case mode
-ssw compress shared files
-t{Type} Set type of archive
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] Update options
-v{Size}[b|k|m|g] Create volumes
-w[{path}] assign Work directory. Empty path means a temporary directory
-y assume Yes on all queries
Command Line Switches
-t

アーカイブの種類を指定します。たとえばカレントディレクトリ以下のすべてのファイルをZIP形式で圧縮するには、-tスイッチを次のように指定します。-t (set Type of archive) switch

7z a -tzip archive.zip .
-r

特定のディレクトリ以下のすべての.txtファイルを、サブディレクトリを含めて圧縮するには、-rスイッチを指定します。

7z a -r C:\archive.7z C:\dir\*.txt

このとき拡張子で制限せずすべてのファイルを対象とするなら、-rスイッチは不要です。

7z a C:\archive.7z C:\dir
-x

特定のファイルを除外するには-xスイッチを用います。たとえばファイル名に.gifか.jpgを含むファイルを除外するには、ワイルドカードを示す「!」も併用して

7z a archive.7z . -x!*.gif -x!*.jpg

とします。このとき対象のファイルがサブディレクトリにあるならば、-rスイッチも同時に指定します。

7z a archive.7z dir -xr!*.gif -xr!*.jpg

ディレクトリを除外するならば、その名前を指定します。

7z a archive.7z dir -xr!dir_name
7 zip - 7Zip - Command Line : Exclude folder(s) by wildcard pattern? - Super User
-i

ファイル名が.txtのファイルに加え.docも対象に含めるならば、-iスイッチを指定します。

7z a archive.7z C:\dir\*.txt -i!C:\dir\*.doc

この指定はカレントディレクトリ以下のファイル名に対して作用します。よって-xスイッチと同様に-ir!*.docのように記述すると、カレントディレクトリ以下のすべてのファイルが対象となってしまいます。

なお上記のコマンドは、次のようにすべて-iスイッチで指定しても同じです。

7z a archive.7z -i!C:\dir\*.txt -i!C:\dir\*.doc
-p

パスワードを設定するには-pスイッチを指定します。たとえばパスワードを「1234」とするには、

7z a C:\archive.7z -p1234 C:\dir

とします。-p (set Password) switch

そのとき7z形式でアーカイブヘッダも暗号化することでファイル名も隠蔽したいならば、-mスイッチでパラメータのheを指定して、

7z a C:\archive.7z -p1234 -mhe C:\dir

とします。7z - -m (Set compression Method) switch

-m

圧縮メソッドを指定します。

たとえばZipならばcu=onを指定することでファイル名をUTF-8で表すようにでき、非ASCII文字が含まれるときの文字化けを回避できます。

List file

ファイル名を記述したテキストファイルを別に用意し、それから処理対象を指定できます。たとえば、

My programs\*.cpp
Src\*.cpp

のように記述されたファイルlistfile.txtを用意し、次のように指示します。

7z a archive.7z @listfile.txt

利用例

圧縮 C:\archive.7zに、C:\dir以下のすべてのファイルをdirディレクトリをルートとして圧縮
7z a C:\archive.7z C:\dir
C:\archive.7zに、C:\dir以下のすべてのファイルを圧縮
7z a C:\archive.7z C:\dir\*
C:\archive.7zに、C:\dir以下の.txtファイルを圧縮
7z a C:\archive.7z C:\dir\*.txt
展開 C:\archive.7zを、カレントディレクトリに展開
7z x C:\archive.7z
C:\にある拡張子が.7zのすべてのファイルを、カレントディレクトリに展開
7z x C:\*.7z
C:\archive.7zを、C:\dirに展開
7z x -oC:\dir C:\archive.7z
C:\archive.7zを、カレントディレクトリにディレクトリ構成を無視して展開
7z e C:\archive.7z

.tar.gzなどのファイルを一発で展開する

.tar.gzや.tar.bz2などの拡張子となっているファイルは書庫化 (アーカイブ) と圧縮が別のため、7-Zipで元に戻すには展開を2回くり返す必要があります。圧縮されたアーカイブファイルを展開するには 北浦訓行 (2001/04/05)

この手間は最初に展開した結果を標準出力から7zへ入力することで、1回で処理することができます。How to open a .tar.gz file in Windows? - Super User

7z x archive.tar.gz -so | 7z x -si -ttar

出力の抑制

処理対象のファイルが多量にあると、大量のテキストが出力されます。これを抑制するには、

7z a C:\archive.7z C:\dir >NUL

としてすべての出力を破棄するか、

7z a C:\archive.7z C:\dir | findstr /b /v /c:"Compressing"

として、"Compressing"の行だけ出力されないようにします。batch - How to disable the output of 7-Zip? - Super User

参考

複数のダウンロードサイトから、まとめて検索