コマンドラインの文法

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

これらの記述の中からいくつか (ただし一つだけ) が選択されたことを意味します。

コマンドスイッチ は括弧の前か後ろに置かれます。

コマンドは最初の非スイッチ引数です。

"base_archive_name" はコマンドラインでコマンドの後に来る、最初のファイル名です。

スイッチと他のファイル名は、任意の順番でかまいません。

スペースを伴ったワイルドカード、及びファイルネームは次のように""で囲まれます:

    "Dir\Program files\*"
    Dir\"Program files"\*

スイッチオプションはコマンドラインの長さを節約するために組み合わせることができます。 しかしいくつかの文字列引数をとるスイッチオプションは、 7-Zip が残りの引数記号をオプション引数ととるため、 組み合わせた引数文字列の最後のオプションにする必要があります。

7-Zip が使用するワイルドカードの記号は Windows 95 で使用しているものに似ています:

7-Zipはシステムのワイルドカードパーザを使用しているわけではなく、 *.* を全てのファイルと解釈するような古い形式の記法には対応していません。 7-Zipは *.* を拡張子を持つ全てのファイルと解釈します。 全てのファイルを扱いたい時には * というワイルドカードを利用してください。

例:

*.txt拡張子 ".txt" を持つすべてのファイルを意味します。
?a*2文字目が "a" のすべてのファイルを意味します。
*1*ファイル名に "1" を含むすべてのファイルを意味します。
*.*.*ファイル名に文字 "." を二つ含むすべてのファイルを意味します。

デフォルトのワイルドカード "*" は、コマンドライン中にファイル名やワイルドカードが無い場合に使用されます。

円記号('\')はディレクトリの終了を意味します。 パスの最後に円記号('\')が付かない場合はファイルかディレクトリの どちらとして扱うことも可能です。

リストファイル

リストファイル (ファイルのリストを含んだファイル) に、 複数のファイル名もしくはワイルドカードを記述することができます。 そのリストファイル内のファイル名はスペース、改行で区切られている必要があります。

リストファイルについて、7-ZipはデフォルトでUTF-8を利用します。 -scs スイッチによって、変更することも可能です。

複数のリストファイルを使用することが出来ます。

"listfile.txt" の内容:

    My programs\*.cpp
    Src\*.cpp

コマンド

    7z a -tzip archive.zip @listfile.txt

とすると、書庫ファイル "archive.zip" にディレクトリ "My programs" と "Src" 中のすべての "*.cpp" ファイルを追加します。

Short and Long File Names

7-Zip は FILENA~1.TXT といったようなショートファイル名もサポートしますが、 実際のファイル名であるロングファイル名を強く推奨します。