コマンドプロンプト
7Zipを使ったファイルの解凍・圧縮【コマンドプロンプト / バッチ】
公開 2018-09-05更新 2026-08-04
複雑なインストールも不要でお世話になっている7-Zip。GUIで使うことが多いツールですが、7za.exe(コマンドライン版)を使うと、バッチファイルに組み込んで解凍・圧縮を自動化できます。
やり方は複数ありますが、ここではあくまで自分がよくバッチに組み込んで使っている形を残しておきます。
7-Zipコマンドライン版(7za.exe)のダウンロード
公式のダウンロードページはこちらです。
7za.exe は本体のインストーラーには入っていません。同じページにある 「7-Zip Extra」(7zXXXX-extra.7z)をダウンロードして展開すると入っています。展開するだけで使えるので、インストールは不要です。
Extraパッケージの中身はこうなっています(バージョン26.02で確認)。
7za.exe ← 32bit版
x64\7za.exe ← 64bit版
arm64\7za.exe ← ARM64版
①解凍例:圧縮したフォルダから任意のファイルだけを解凍したい場合
C:\7-zip\7za.exe e -y -o<出力先パス> -ir!<取り出したいファイル名> <ZIP名>
各パーツの意味はこうです。
| 指定 | 意味 |
|---|---|
C:\7-zip\7za.exe | ダウンロード・展開した 7za.exe のフルパス(例) |
e | 解凍コマンド(フォルダ構成は反映されない) |
-y | Yes/No の確認をすべて Yes にする |
-o | このオプションに続けて、スペースを空けずに出力先パスを書く |
-ir! | 続けてスペースを空けずに取り出したいファイル名を指定(ワイルドカード可) |
<ZIP名> | フォルダごと圧縮したZIPファイルを指定 |
-o と -ir! は、オプションと値の間にスペースを入れないのがポイントです。ここでよくつまずきます。
例)C:\temp フォルダ内の hoge.zip の中の fuga.txt を C:\temp\fuga に解凍
C:\temp\7za.exe e -y -oC:\temp\fuga -ir!fuga.txt hoge.zip
7za.exe一式がC:\tempにある前提です- カレントディレクトリを
C:\temp\にしています
フォルダ構成もそのまま再現したい場合は、e ではなく x を使います。
②圧縮例:任意のフォルダ・ファイルを指定した名前のZIPに圧縮
C:\7-zip\7za.exe a <ZIP名> <圧縮したいフォルダorファイル>
| 指定 | 意味 |
|---|---|
a | 圧縮コマンド(フォルダ構成が反映される) |
<ZIP名> | 圧縮後のファイル名 |
<圧縮したいフォルダorファイル> | 対象のフォルダ名またはファイル名 |
フルパスで指定していない箇所は、カレントディレクトリが対象になります。
例)C:\temp フォルダ内の hoge_folder を hogehoge.zip に圧縮
C:\temp\7za.exe a hogehoge.zip hoge_folder
7za.exe一式がC:\tempにある前提です- カレントディレクトリを
C:\temp\にしています
パスに半角スペースが入るときの注意
C:\Program Files\... のようにパスに半角スペースが含まれる場合は、ダブルクォーテーションで囲みます。囲まないと、スペースの位置で引数が切れてエラーになります。
C:\temp\7za.exe a hogehoge.zip "C:\Users\riz\My Documents\hoge_folder"
まとめ
①の「任意のファイルだけを解凍する」がわかっていれば、②の圧縮はざっくりやっておいても問題ないことが多いです。実際、自分はこの2つをメインに使い回しています。
バッチに組み込むときは、-y を付けて確認ダイアログを止めておくと、無人実行でも止まりません。
手作業を減らす話の、いまの続き
コマンドで作業を削るのと同じ発想で、いまはAIに任せられる範囲が広がっています。 どこから手をつけるかは人によって違うので、3分の診断とAI活用の実践記事を置いています。
ナオTRYZM管理人
AIに関わるPMで、夜はAIで作って試す人。囲碁では布石が好き(何もない盤面に構想を描く時間)。 嘘をつくと自分があとで気にして引きずるタチなので、報酬が入らないプランでも一番ならそのまま書きます。 守れるルールは3つ — 盛らない。順位を売らない。試せないことも、徹底的に調べて正確に。