ビジネス課題への解決策(アイディア)と、新たな発想(+α)が見つかるIT情報メディア

Menu
  1. TOP
  2. データ活用
  3. Windowsで、OS標準機能のzip圧縮/解凍を使用する(PowerShellv5編)

Windowsで、OS標準機能のzip圧縮/解凍を使用する(PowerShellv5編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

Windowsでよく使う圧縮ファイル形式と言ったら、zipですよね。
日本では、WindowsがコンシューマーPC用のOSとして普及する前、PC-9801X68000が全盛だった頃は、日本独自のlzhファイルがよく使われていました…
って、既に20年も前なのですね。

さて、このzipファイルですが、Windows OSの標準機能で、圧縮や解凍(およびフォルダーとして扱うこと)ができます。
圧縮したいファイルあるいはフォルダーを選択して、マウス右クリック-[送る]-[圧縮(zip形式)フォルダー]と選択すると圧縮できますし、zipファイルを選択して、マウス右クリック-[すべて展開]とすると、解凍できます(OSの拡張子設定に依りますが)。
さて、この圧縮/解凍、マウスからは上記のように操作できますが、コマンドラインから操作するにはどうしたらよいでしょうか?

これまでは、Windows標準のコマンドプロンプトでは操作ができないので、

  • WSHでzipファイルの操作を作成し、バッチで呼び出し
  • PowerShell v4追加されたzipファイルを操作するライブラリを使用して、同上

ということをする必要がありました。
(例は、ネットで探すとすぐに見つかるので、ここでは割愛します)

<追記>WSH版の記事を追加しました。
Windowsで、OS標準機能のzip圧縮/解凍を使用する(WSH編)

2015年2月時点ではまだ正式リリースされていませんが(Preview版)、Windows 10にも標準搭載されるPowerShell v5では、新たにコマンドが追加されます。

圧縮コマンドのヘルプ表示(一部):

名前
    Compress-Archive

構文
    Compress-Archive [-Path] <string[]> [-DestinationPath] <string> [-CompressionLevel <st
    ring> {Optimal | NoCompression | Fastest}] [-WhatIf] [-Confirm]  [<CommonParameters>]

~中略~

エイリアス
    なし

解凍コマンドのヘルプ表示(一部):

名前
    Expand-Archive

構文
    Expand-Archive [-Path] <string> [-DestinationPath] <string> [-Force] [-WhatIf] [-Confi
    rm]  [<CommonParameters>]

~中略~

エイリアス
    なし

PowerShellをコマンドラインから実行するには、先頭に”powershell”と付ければ大丈夫です。

C:>powershell compress-archive c:temptest.txt 
c:temptest.zip

このような感じで、簡単にコマンドからもzipファイルを扱えるようになります。

 

さて、ここまでのコマンド例を見てきて、「パスワード指定の引数が無い」とお気付きになった方もいらっしゃると思います。

そうなのです。圧縮時の暗号化の引数が無いのです。
これは、コマンドだから使用できないわけではなく、Windowsの圧縮フォルダーにそもそも機能が存在していないのです(注:Windows XPには機能がありましたが、それ以降削除されました)。
マウス右クリック-[送る]-[圧縮(zip形式)フォルダー]と選択したときも、パスワードを与えることはできませんし、WSHでもPowerShell v4のライブラリ使用でも、同様にパスワードは設定できません。

解凍時はどうかというと、Windowsエクスプローラーではダイアログボックスでパスワードを指定できますが、これをコマンドから与えることもできません。

パスワードで暗号化されたzipファイルが届いた場合、

  • WSHで実行する場合…パスワードを入力するダイアログボックスが表示
  • PowerShell v5で実行する場合…エラー

となります。

また、アーカイバー:圧縮・解凍ツールによっては、Windows OSの標準機能では解凍できない形式のファイルになっている場合があります。
なので、lzhファイルなどzip以外の圧縮ファイルを扱う場合は、現状でもアーカイバーが必要ですね。

ちなみに、上に出てきたlzhファイルは、Windows 7以降ではWindows OSの標準機能で解凍(および読み込み専用のフォルダーとして扱うことが)できるようになっています。
それより前では、拡張機能(Windows XPでは、確か「正規 Windows 推奨プログラム」でWindowsアカウントのアクティベーションを行うとダウンロードできた気がします)によって解凍できるようになりました。
すべてのlzhファイルを解凍できるわけではありませんし、Windowsエクスプローラからの操作に限るのですが、便利になりました。

データの抽出や加工、連携にお悩みではありませんか?

20年以上の実績に裏打ちされた信頼のデータ連携ツール「Waha! Transformer」で、自社に眠るデータを有効活用。まずは無料のハンズオンセミナーや体験版で効果を実感していただけます。

> 純国産ETLツール「Waha! Transformer」

Waha! Transformer

メールマガジンの登録はこちらから
メルマガ登録 お問い合わせ