コンピュータ

7-Zipのコマンドライン操作

投稿日:

Sponsored Link

とっても便利かつオープンソースでフリーな圧縮・解凍ソフトに「7-Zip」というものがあります。
名前の通りzipファイルを圧縮・解凍できたり、独自形式7zとして圧縮・解凍できたりします。
本来はGUIアプリなのですが、実はコマンドラインツールとして使うこともできます。
コマンドプロンプトに

"C:\Program Files\7-Zip\7z.exe"

と打ち込むことで起動します。環境変数PATHを通していると、「7z」と打つだけでも起動できます。

環境変数PATHに7-Zipを追加

これはお好みですが、便利なので追加しましょう。方法はWindows7とWindows10で若干違うみたいですが、どっちも通用する方法を紹介します。

エクスプローラーを開いて、左側のメニューにある「PC」を右クリックし、「プロパティ」を選択します。

「システム」というウィンドウが開くので、「システムの詳細設定」をクリックします。

「システムのプロパティ」ウィンドウが開くので、「環境変数」をクリックします。

「環境変数」ウィンドウが開くので、「システム環境変数」内の「Path」をクリックし、「編集」をクリックして、"C:\Program Files\7-Zip\"を加えてください。

以下では、

"C:\Program Files\7-Zip\7z.exe" [コマンド]

と打ち込む部分を、Pathを通している前提で、

7z [コマンド]

としています。もしPathを通さないのであれば、適宜書き換えてください。

圧縮コマンド

基本的な使い方は、

7z a [圧縮した後の名前] [圧縮したいものの名前]

になります。いくつかのオプションを紹介します。

-mmt=on :マルチスレッド化

-mx=9:圧縮率(9が最大)

-ssw:他のアプリが使用中のファイルも圧縮(使い方によれば危険ですが、)

-t[形式]:圧縮ファイルの形式を指定します。gzipならば-tgzip、xzならば-txzとなります。

-sdel :圧縮が終わったら、もとのファイルは消すというオプションです。

これらのコマンドを活用して、「指定フォルダ以下の全ファイルを、xzファイルに圧縮」というbatファイルを書いてみました。

@echo off

SET EXCLUDE_FILE_EXT=.xz
SET SRC_DIR=".\"

rem for /f %%i in (%SRC_DIR%\*) do (
for /f "usebackq" %%i in (`dir /B /S "%SRC_DIR%"`) do (

if /I not "%%~xi"=="%EXCLUDE_FILE_EXT%" 7z a -mmt=on -mx=9 -ssw -txz -sdel %%i.xz %%i

)

pause

解凍コマンド

もちろん、解凍も行えます。基本的な使い方は、

7z e [解凍したいものの名前]

または

7z e [解凍したいものの名前]

です。xとeの違いは、

x:フォルダ構成を再現して解凍
e:ぜんぶその場所に解凍

です。目的に応じて使ってください。

これを利用して、「指定フォルダ以下にある全てのgzファイルを解凍し、もとのファイルは削除」というbatファイルを作りました。

@echo off

SET EXCLUDE_FILE_EXT=.gz
SET SRC_DIR=".\"

rem for /f %%i in (%SRC_DIR%\*) do (
for /f "usebackq" %%i in (`dir /B /S "%SRC_DIR%"`) do (

if /I "%%~xi"=="%EXCLUDE_FILE_EXT%" 7z e -mmt=on -mx=9 -ssw -tgzip %%i -o%%~dpi && del %%i

)

pause

batファイルは自己責任で使ってください。

-コンピュータ

Copyright© CGBeginner , 2018 All Rights Reserved Powered by STINGER.