Windows上でzipコマンドを使用する為の方法 | そう備忘録

Windows上でzipコマンドを使用する為の方法

zipコマンド

Windows10にてコマンドプロンプトやPower Shellからzipコマンドを使えるようにしたときの備忘録。

Windows10での圧縮や解凍はGUIで操作する7-zipを使わせてもらっていた。

これはこれで便利に使わせて貰っていたのだが特定の日付以降に更新されているファイルだけを抽出してサブフォルダーも含めたフォルダー構造ごと圧縮をしたい場合に7-zipでやる方法をどうしても見つけられなかった。

使用用途としてはバックアップなのだが、

  1. 最初にフルバックアップ
  2. 次回以降は定期的に前回バックアップ以降に更新されたファイルのみを差分でバックアップ

を実行したい場合、1のフルバックアップは良いのだが2の差分を抽出して圧縮する方法が分からなかった。

Power ShellではCompress-Archiveコマンドで圧縮をする事ができるのだが残念ながら日付指定のオプションは見当たらなかった。

Linuxのzipコマンドでは指定した日付以降に更新されたファイルのみを抽出する事ができることは分かっていたので、それならばと思いWindows環境にzipコマンドをインストールすることにした。

環境

念の為に当方の環境を記載しておく。

OS

Windows10 Home バージョン1903

本体

DELL G7 15 7588

CPU

CoreTM i7-8750H

インストール

zip.exeの入手

下記のホームページにアクセスして”Binaries”の横のZipをクリックしてzip-3.0-bin.zip(ファイルのバージョンは2020年10月現在)をダウンロードする。

zip.exeの入手

DLLのダウンロード

続けてこちらのサイトにアクセスして”Binaries”横のZipをクリックしてbzip2-1.0.5-bin.zip(ファイルのバージョンは2020年10月現在)をダウンロードする。

zip.dllの入手

解凍

それぞれのファイルを解凍して

  • zip-3.0-bin.zipからzip.exe
  • bzip2-1.0.5-bin.zipからはbzip2.dll

を取り出して適当なフォルダー※を作成して保存する。

※自分はProgram Files (x86)配下にzipフォルダーを作成してその中に上記2つのファイルを保存した。

Program Files (x86)への保存

Pathを有効にする

環境変数のpathに先程のフォルダー(Program Files (x86)¥zip)を追加してコマンドプロンプトやPowerShellからコマンドを使えるようにする。

プロパティ

エクスプローラーからPCを選択して右クリック、プロパティを選択する。

PC、プロパティ

詳細設定

システムメニューが表示されるので左のメニューから”システムの詳細設定”をクリックする。

システムの詳細設定

環境変数

「環境変数」ボタンをクリックする。

環境編ボタン

Pathの編集

ユーザ環境変数にPathがすでに設定されていたので選択して「編集」ボタンをクリックする。

ユーザ環境変数への設定

すでに設定されているPathが左に表示されるので「新規」ボタンをクリックする。

新規ボタン

c:¥Program Files (x86)¥zipを入力して「OK」ボタンをクリックする。

※Filesと(x86)の間には空白があるので注意!

c:\Program Files (x86)\zipを設定
システム環境変数とユーザ環境変数の違い

システム環境変数はシステム(パソコン)全体に適用される環境変数、ユーザ環境変数はそのユーザでログインしている時のみに適用される環境変数となる。

このパソコンは自分(1ユーザ)でしかログインをしないのでどちらに設定しても良いのだがユーザ環境変数の方に設定した。

つまり他のユーザでこのパソコンにログインをした場合はこのPathは非適用になる。

またユーザ環境変数とシステム環境変数の両方にPathが設定されている場合はシステム環境変数、ユーザ環境変数の順番でPathが適用される。

つまり、

  • システム環境変数:c:¥aaa
  • ユーザ環境変数:c:¥bbb

の場合のPathはc:¥aaa;c:¥bbbの順番で設定されるので両方に同じ実行モジュールがある場合はc:¥aaa配下のモジュールが実行される。

動作確認

Windowsを再起動してコマンドプロンプトやPower Shellからzipコマンドを入力して動作することを確認する。

zipコマンド

日付指定

指定した日付以降に更新されたファイルをサブフォルダーも含めてフォルダー構造毎圧縮するコマンドは以下の通り。

zip -r -t ddmmyyyy 圧縮先ファイル名 圧縮対象フォルダー
実際のコマンド

testフォルダー配下の2020年9月17日以降に更新されたファイルを圧縮してtestarc.zipファイルにアーカイブしている。

-rオプションを指定するとフォルダーを再帰的に検索するのでサブフォルダーも含めて対象にする事ができる。

以上で今回の記事は終了とする。

最後に

この記事が何処かで誰かの役に立つことを願っている。

尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。