7-Zip

導入

7-Zip

7-Zip Portable | PortableApps.com - Portable software for USB, portable and cloud drives

更新履歴はHISTORY of the 7-Zipで確認できます。

表示言語

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

3つのアプリケーション

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

圧縮 (Compress)

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

展開 (Extract) / 解凍

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

7-Zip File Managerでの展開

7-Zip File Managerから特定のファイルを展開するには、それを選択して[コピー]を実行します。そのとき複数のファイルを選択すれば、それらを一括して展開できます。

7-Zip File Manager

リストビューで表示されるのは指定フォルダにあるファイルの実体であり、ここでファイルを削除すると、ファイルの実体が削除されます。

オプション

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

コマンドライン

Usage: 7z command [switches...] archive_name [file_names...] [@listfiles...]
Command Line Syntax | 7-Zip
Commands
  機能
a アーカイブにファイルを追加する ※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
u アーカイブのファイルを更新する ※1
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スイッチを次のように指定します。

7z a -tzip foo.zip .
-r

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

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

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

7z a C:\foo.zip C:\dir
-x

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

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

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

7z a foo.7z bar -xr!*.gif -xr!*.jpg

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

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

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

7z a foo.7z C:\bar\*.txt -i!C:\bar\*.doc

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

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

7z a foo.7z -i!C:\bar\*.txt -i!C:\bar\*.doc

List file

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

My programs\*.cpp
Src\*.cpp

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

7z a archive.7z @listfile.txt

利用例

圧縮 C:\foo.7zに、C:\bar以下のすべてのファイルをbarディレクトリをルートとして圧縮
7z a C:\foo.7z C:\bar
C:\foo.7zに、C:\bar以下のすべてのファイルを圧縮
7z a C:\foo.7z C:\bar\*
C:\foo.7zに、C:\bar以下の.txtファイルを圧縮
7z a C:\foo.7z C:\bar\*.txt
展開 C:\foo.7zを、カレントディレクトリに展開
7z x C:\foo.7z
C:\にある拡張子が.7zのすべてのファイルを、カレントディレクトリに展開
7z x C:\*.7z
C:\foo.7zを、C:\barに展開
7z x -oC:\bar C:\foo.7z
C:\foo.7zを、カレントディレクトリにディレクトリ構成を無視して展開
7z e C:\foo.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 foo.tar.gz -so | 7z x -si -ttar

出力の抑制

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

7z a C:\foo.7z C:\bar >NUL

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

7z a C:\foo.7z C:\bar | findstr /b /v /c:"Compressing"

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