【基本】7zipのコマンドラインでの使い方
アーカイバ・7Zipでは、右クリックメニューから圧縮・解凍を行うだけでなく、コマンドラインでの操作やバッチファイルを作成しての操作を行うことが可能となっています。ログが出力されるので、どういった処理が行われたか分かるのも便利ですね。
一般的な圧縮以外の方法で圧縮操作を行えるので、覚えておくと便利になりますよ。この記事では、7Zipのコマンドラインでの使い方をご紹介していきます。
※ここから先に紹介するコマンドは、7zipが「C:\Program Files\7-Zip\7z.exe」にある場合のケースです。別の場所にインストールしている場合は、7z.exeのパスが変わりますので注意しましょう。
基本の圧縮コマンド
"C:\Program Files\7-Zip\7z.exe" a test.zip memo.txt
aの後に半角スペースを入れてから圧縮されたファイルが出力されるパスと名前を入力し、その後に半角スペースを入れて圧縮を行うファイルのパスを入力しましょう。
このコマンドで、memo.txtファイルがtest.zipファイルに圧縮されますよ。
複数のファイルを圧縮する
"C:\Program Files\7-Zip\7z.exe" a memo1to2.zip memo1.txt memo2.txt
基本のコマンドの応用で、圧縮を行うファイルを続けて入力することで、複数のファイルを同じ圧縮フォルダにまとめることができます。
このコマンドで、memo1.txtファイルとmemo2.txtファイルがmemo1to2.zipに圧縮されました。
複数のフォルダを圧縮
"C:\Program Files\7-Zip\7z.exe" a folders.zip folder1 folder2
複数のファイルを一つの圧縮フォルダにまとめられるように、複数のフォルダも一つの圧縮フォルダにまとめることが可能ですよ。
このコマンドで、folder1フォルダとfolder2フォルダがfolders.zipに圧縮されました。
すでにある圧縮フォルダにファイルを追加する
"C:\Program Files\7-Zip\7z.exe" a test.zip memo2.txt
すでに作成されている圧縮フォルダ内に、ファイルを追加するといったことも可能です。
「基本の圧縮コマンド」で作成したmemo.txtが入っているtest.zipに、このコマンドを入力することでmemo2.txtを追加することができます。解凍すれば、memo1.txtとmemo2.txtの2つのファイルが展開されますよ。
複数のファイル・フォルダを個別に圧縮
複数のファイル・フォルダを個別に圧縮する場合、コマンドラインで操作するよりもバッチファイルを作成して利用したほうが効率的です。下記リンク先の記事で個別圧縮を行うバッチファイルの作成方法をご紹介していますので、併せてご覧ください。
【オプション】7zipのコマンドラインでの使い方
利用するケースの多いオプションをご紹介します。
圧縮率変更
下記のオプションで、圧縮率を変更できます。最大で9まで設定することができ、数字が大きいほど圧縮率が高くなります。
-mx=9
圧縮完了後に元のファイルを削除する
下記のオプションで、ファイルの圧縮が完了したら元のファイルを削除することができます。
-sdel
処理をマルチスレッド化する
下記のオプションで、圧縮処理をマルチスレッド化することができます。パソコンの性能が余り気味の場合、マルチスレッド化で処理速度がアップしますよ。
-mmt=on
最後に、オプションの一覧を記載します。7Zipでは様々なオプションがあるので、マスターすることで自由自在に圧縮ができるようになります。
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 Usage: 7z[ ...] [ ...] [<@listfiles...>] a : Add files to archive b : Benchmark d : Delete files from archive e : Extract files from archive (without using directory names) h : Calculate hash values for files i : Show information about supported formats l : List contents of archive rn : Rename files in archive t : Test integrity of archive u : Update files to archive x : eXtract files with full paths -- : Stop switches parsing -ai[r[-|0]]{@listfile|!wildcard} : Include archives -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives -ao{a|s|t|u} : set Overwrite mode -an : disable archive_name field -bb[0-3] : set output log level -bd : disable progress indicator -bs{o|e|p}{0|1|2} : set output stream for output/error/progress line -bt : show execution time statistics -i[r[-|0]]{@listfile|!wildcard} : Include filenames -m{Parameters} : set compression Method -mmt[N] : set number of CPU threads -o{Directory} : set Output directory -p{Password} : set Password -r[-|0] : Recurse subdirectories -sa{a|e|s} : set Archive name mode -scc{UTF-8|WIN|DOS} : set charset for for console input/output -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files -scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands -sdel : delete files after compression -seml[.] : send archive by email -sfx[{name}] : Create SFX archive -si[{name}] : read data from stdin -slp : set Large Pages mode -slt : show technical information for l (List) command -snh : store hard links as links -snl : store symbolic links as links -sni : store NT security information -sns[-] : store NTFS alternate streams -so : write data to stdout -spd : disable wildcard matching for file names -spe : eliminate duplication of root folder for extract command -spf : use fully qualified file paths -ssc[-] : set sensitive case mode -ssw : compress shared files -stl : set archive timestamp from the most recently modified file -stm{HexMask} : set CPU thread affinity mask (hexadecimal number) -stx{Type} : exclude archive type -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 -x[r[-|0]]{@listfile|!wildcard} : eXclude filenames -y : assume Yes on all queries