Windows上でzipコマンドを使用する為の方法
コンテンツ
zipコマンド
Windows10にてコマンドプロンプトやPower Shellからzipコマンドを使えるようにしたときの備忘録。
Windows10での圧縮や解凍はGUIで操作する7-zipを使わせてもらっていた。
これはこれで便利に使わせて貰っていたのだが特定の日付以降に更新されているファイルだけを抽出してサブフォルダーも含めたフォルダー構造ごと圧縮をしたい場合に7-zipでやる方法をどうしても見つけられなかった。
使用用途としてはバックアップなのだが、
- 最初にフルバックアップ
- 次回以降は定期的に前回バックアップ以降に更新されたファイルのみを差分でバックアップ
を実行したい場合、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の入手 zip.exeの入手](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-02.png?resize=1024%2C471&ssl=1)
DLLのダウンロード
続けてこちらのサイトにアクセスして”Binaries”横のZipをクリックしてbzip2-1.0.5-bin.zip(ファイルのバージョンは2020年10月現在)をダウンロードする。
![zip.dllの入手 zip.dllの入手](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-03.png?resize=1024%2C470&ssl=1)
解凍
それぞれのファイルを解凍して
- zip-3.0-bin.zipからzip.exe
- bzip2-1.0.5-bin.zipからはbzip2.dll
を取り出して適当なフォルダー※を作成して保存する。
※自分はProgram Files (x86)配下にzipフォルダーを作成してその中に上記2つのファイルを保存した。
![Program Files (x86)への保存 Program Files (x86)への保存](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-04.png?resize=1024%2C582&ssl=1)
Pathを有効にする
環境変数のpathに先程のフォルダー(Program Files (x86)¥zip)を追加してコマンドプロンプトやPowerShellからコマンドを使えるようにする。
プロパティ
エクスプローラーからPCを選択して右クリック、プロパティを選択する。
![PC、プロパティ PC、プロパティ](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-05.png?resize=1024%2C585&ssl=1)
詳細設定
システムメニューが表示されるので左のメニューから”システムの詳細設定”をクリックする。
![システムの詳細設定 システムの詳細設定](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-06.png?resize=1024%2C541&ssl=1)
環境変数
「環境変数」ボタンをクリックする。
![環境編ボタン 環境編ボタン](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-07.png?resize=500%2C647&ssl=1)
Pathの編集
ユーザ環境変数にPathがすでに設定されていたので選択して「編集」ボタンをクリックする。
![ユーザ環境変数への設定 ユーザ環境変数への設定](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-08.png?resize=500%2C553&ssl=1)
すでに設定されているPathが左に表示されるので「新規」ボタンをクリックする。
![新規ボタン 新規ボタン](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-09.png?resize=500%2C550&ssl=1)
c:¥Program Files (x86)¥zipを入力して「OK」ボタンをクリックする。
※Filesと(x86)の間には空白があるので注意!
![c:\Program Files (x86)\zipを設定 c:\Program Files (x86)\zipを設定](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-11.png?resize=500%2C553&ssl=1)
システム環境変数とユーザ環境変数の違い
システム環境変数はシステム(パソコン)全体に適用される環境変数、ユーザ環境変数はそのユーザでログインしている時のみに適用される環境変数となる。
このパソコンは自分(1ユーザ)でしかログインをしないのでどちらに設定しても良いのだがユーザ環境変数の方に設定した。
つまり他のユーザでこのパソコンにログインをした場合はこのPathは非適用になる。
またユーザ環境変数とシステム環境変数の両方にPathが設定されている場合はシステム環境変数、ユーザ環境変数の順番でPathが適用される。
つまり、
- システム環境変数:c:¥aaa
- ユーザ環境変数:c:¥bbb
の場合のPathはc:¥aaa;c:¥bbbの順番で設定されるので両方に同じ実行モジュールがある場合はc:¥aaa配下のモジュールが実行される。
動作確認
Windowsを再起動してコマンドプロンプトやPower Shellからzipコマンドを入力して動作することを確認する。
![zipコマンド zipコマンド](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-12.png?resize=1024%2C537&ssl=1)
日付指定
指定した日付以降に更新されたファイルをサブフォルダーも含めてフォルダー構造毎圧縮するコマンドは以下の通り。
zip -r -t ddmmyyyy 圧縮先ファイル名 圧縮対象フォルダー
![実際のコマンド 実際のコマンド](https://i0.wp.com/www.souichi.club/wp-content/uploads/zip-command-13.png?resize=983%2C179&ssl=1)
testフォルダー配下の2020年9月17日以降に更新されたファイルを圧縮してtestarc.zipファイルにアーカイブしている。
-rオプションを指定するとフォルダーを再帰的に検索するのでサブフォルダーも含めて対象にする事ができる。
以上で今回の記事は終了とする。
この記事が何処かで誰かの役に立つことを願っている。
尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
最近のコメント