Windows上でzipコマンドを使用する為の方法
Contents
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月現在)をダウンロードする。
DLLのダウンロード
続けてこちらのサイトにアクセスして”Binaries”横のZipをクリックしてbzip2-1.0.5-bin.zip(ファイルのバージョンは2020年10月現在)をダウンロードする。
解凍
それぞれのファイルを解凍して
- zip-3.0-bin.zipからzip.exe
- bzip2-1.0.5-bin.zipからはbzip2.dll
を取り出して適当なフォルダー※を作成して保存する。
※自分はProgram Files (x86)配下にzipフォルダーを作成してその中に上記2つのファイルを保存した。
Pathを有効にする
環境変数のpathに先程のフォルダー(Program Files (x86)¥zip)を追加してコマンドプロンプトやPowerShellからコマンドを使えるようにする。
プロパティ
エクスプローラーからPCを選択して右クリック、プロパティを選択する。
詳細設定
システムメニューが表示されるので左のメニューから”システムの詳細設定”をクリックする。
環境変数
「環境変数」ボタンをクリックする。
Pathの編集
ユーザ環境変数にPathがすでに設定されていたので選択して「編集」ボタンをクリックする。
すでに設定されているPathが左に表示されるので「新規」ボタンをクリックする。
c:¥Program Files (x86)¥zipを入力して「OK」ボタンをクリックする。
※Filesと(x86)の間には空白があるので注意!
システム環境変数とユーザ環境変数の違い
システム環境変数はシステム(パソコン)全体に適用される環境変数、ユーザ環境変数はそのユーザでログインしている時のみに適用される環境変数となる。
このパソコンは自分(1ユーザ)でしかログインをしないのでどちらに設定しても良いのだがユーザ環境変数の方に設定した。
つまり他のユーザでこのパソコンにログインをした場合はこのPathは非適用になる。
またユーザ環境変数とシステム環境変数の両方にPathが設定されている場合はシステム環境変数、ユーザ環境変数の順番でPathが適用される。
つまり、
- システム環境変数:c:¥aaa
- ユーザ環境変数:c:¥bbb
の場合のPathはc:¥aaa;c:¥bbbの順番で設定されるので両方に同じ実行モジュールがある場合はc:¥aaa配下のモジュールが実行される。
動作確認
Windowsを再起動してコマンドプロンプトやPower Shellからzipコマンドを入力して動作することを確認する。
日付指定
指定した日付以降に更新されたファイルをサブフォルダーも含めてフォルダー構造毎圧縮するコマンドは以下の通り。
zip -r -t ddmmyyyy 圧縮先ファイル名 圧縮対象フォルダー
testフォルダー配下の2020年9月17日以降に更新されたファイルを圧縮してtestarc.zipファイルにアーカイブしている。
-rオプションを指定するとフォルダーを再帰的に検索するのでサブフォルダーも含めて対象にする事ができる。
以上で今回の記事は終了とする。
この記事が何処かで誰かの役に立つことを願っている。
尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
最近のコメント