Windows PowerShellコマンドレットでファイルをZIP圧縮したり展開(解凍)する方法

Windows PowerShellコマンドレットでファイルをZIP圧縮したり展開(解凍)する方法

Windows10などに標準搭載されている「Windows PowerShell」では、バージョン5.0でファイルをZIP圧縮したり展開(解凍)する、以下のコマンドレットが追加されています。

  • ファイルをZIP圧縮するコマンドレット「Compress-Archive」
  • ZIPファイルを展開するコマンドレット「Expand-Archive」

それ以前の環境では、サードパーティーの圧縮・解凍コマンドラインツールを利用したりする必要がありましたが、標準コマンドで対応できるのはありがたいです。

そこで、ここではWindows PowerShellコマンドレットで、ファイルをZIP圧縮したり展開(解凍)する方法を紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェア バージョン
Windows10 Pro 64bit 1909
Windows PowerShell 5.1.18362.628

ご自分の環境のWindows PowerShellのバージョンは「Get-Host」コマンドレットで確認できます。

Windows PowerShellコマンドレットでファイルをZIP圧縮したり展開(解凍)する方法

ファイルをZIP圧縮する

ファイルをZIP圧縮するときは「Compress-Archive」コマンドレットを利用します。

Compress-Archive | Microsoft Docs

基本的な書式は、次のとおりです。

PS C:> Compress-Archive -Path <圧縮したいファイル> -DestinationPath <出力ファイル名>

「-Path」オプションで圧縮するファイルやフォルダーを指定し「-DestinationPath」オプションで出力するファイル名を指定します。

単一ファイルを圧縮する

単一のファイルを圧縮する場合は、次のように実行します。

PS C:> Compress-Archive -Path E:sample.txt -DestinationPath E:test.zip

複数ファイルを圧縮する

複数のファイルを圧縮する場合は、カンマ区切りで複数ファイルを指定するか、ワイルドカードで指定することができます。

PS C:>Compress-Archive -Path E:sample.txt, E:samaple2.txt -DestinationPath E:test2.zip
PS C:> Compress-Archive -Path E:*.txt -DestinationPath test3.zip

ワイルドカードを使用したくないとき

意図しないファイルが対象とならないよう、意識的にワイルドカードを使用しない場合は、「-Path」オプションの代わりに「-LiteralPath」オプションを利用します。

PS C:>Compress-Archive -LiteralPath E:sample.txt, E:samaple2.txt -DestinationPath E:test2.zip

圧縮するファイルをパイプで渡す

圧縮するファイルは、パイプで渡すこともできます。

PS C:> Get-ChildItem E:*.txt | Compress-Archive -DestinationPath test4.zip

既存のZIPファイルにファイルを追加する

「-Update」オプションを利用すると、既存のZIPファイルにファイルを追加できます。

PS C:> Compress-Archive -Path E:sample3.txt -DestinationPath E:test3.zip -Update

圧縮レベルを指定する

「-CompressionLevel」オプションを利用すると、圧縮率や圧縮スピードを指定できます。

指定可能な値は、次のとおりです。

  • Optimal - 最適な圧縮率を使用します。(デフォルト)
  • Fastest - 処理時間が最速となる圧縮率を使用します。
  • NoCompression - 圧縮は行わず、書庫化だけを行います。
PS C:> Compress-Archive -Path E:*.txt -DestinationPath test3.zip -CompressionLevel Fastest

コマンドレットのヘルプ

「Compress-Archive」コマンドレットのヘルプは、次のとおりです。

PS C:> Get-Help Compress-Archive

名前
    Compress-Archive

概要
    Creates an archive, or zipped file, from specified files and folders.


構文
    Compress-Archive [-Path] <String[]> [-DestinationPath]  [-CompressionLevel {Optimal | NoCompression | Faste
    st}] [-Confirm] -Force [-WhatIf] []

    Compress-Archive [-DestinationPath]  [-CompressionLevel {Optimal | NoCompression | Fastest}] [-Confirm] -Fo
    rce -LiteralPath <String[]> [-WhatIf] []

    Compress-Archive [-DestinationPath]  [-CompressionLevel {Optimal | NoCompression | Fastest}] [-Confirm] -Li
    teralPath <String[]> -Update [-WhatIf] []

    Compress-Archive [-DestinationPath]  [-CompressionLevel {Optimal | NoCompression | Fastest}] [-Confirm] -Li
    teralPath <String[]> [-WhatIf] []

    Compress-Archive [-Path] <String[]> [-DestinationPath]  [-CompressionLevel {Optimal | NoCompression | Faste
    st}] [-Confirm] [-WhatIf] []

    Compress-Archive [-Path] <String[]> [-DestinationPath]  [-CompressionLevel {Optimal | NoCompression | Faste
    st}] [-Confirm] -Update [-WhatIf] []


説明
    The Compress-Archive cmdlet creates a zipped (or compressed) archive file from one or more specified files or folde
    rs. An archive file allows multiple files to be packaged, and optionally compressed, into a single zipped file for
    easier distribution and storage. An archive file can be compressed by using the compression algorithm specified by
    the CompressionLevel parameter.

    Because Compress-Archive relies upon the Microsoft .NET Framework API System.IO.Compression.ZipArchive to compress
    files, the maximum file size that you can compress by using Compress-Archive is currently 2 GB. This is a limitatio
    n of the underlying API.


関連するリンク
    Online Version: http://go.microsoft.com/fwlink/?LinkId=821654

注釈
    例を参照するには、次のように入力してください: "get-help Compress-Archive -examples".
    詳細を参照するには、次のように入力してください: "get-help Compress-Archive -detailed".
    技術情報を参照するには、次のように入力してください: "get-help Compress-Archive -full".
    オンライン ヘルプを参照するには、次のように入力してください: "get-help Compress-Archive -online"


PS C:>

ZIPファイルを展開(解凍)する

ZIPファイルを展開(解凍)するときは「Expand-Archive」コマンドレットを利用します。

Expand-Archive | Microsoft Docs

基本的な書式は、次のとおりです。

PS C:> Expand-Archive -Path <ZIPファイル> -DestinationPath <展開先フォルダー>

「-Path」オプションでZIPファイルを指定し「-DestinationPath」オプションで展開先のフォルダーを指定します。

PS C:> Expand-Archive -Path E:test.zip -DestinationPath E:test

「-DestinationPath」オプションを指定せずに実行すると、カレントディレクトリにZIPファイル名と同名のフォルダーが作成され、その中に解凍されます。

以下の例では、Cドライブ直下に「test」という名前のフォルダーが作成され、その中に解凍されます。

PS C:> Expand-Archive -Path E:Test.zip

展開先のフォルダーに同名のファイルがある場合、そのまま展開するとエラーとなるため、上書きする場合は「-Force」オプションを使用します。

PS C:> Expand-Archive -Path E:Test.zip -DestinationPath E:test -Force

コマンドヘルプ

「Expand-Archive」コマンドレットのヘルプは、次のとおりです。

PS C:> Get-Help Expand-Archive

名前
    Expand-Archive

概要
    Extracts files from a specified archive (zipped) file.


構文
    Expand-Archive [[-DestinationPath] ] [-Confirm] [-Force] -LiteralPath  [-WhatIf] []

    Expand-Archive [-Path]  [[-DestinationPath] ] [-Confirm] [-Force] [-WhatIf] []


説明
    The Expand-Archive cmdlet extracts files from a specified zipped archive file to a specified destination folder. An
     archive file allows multiple files to be packaged, and optionally compressed, into a single zipped file for easier
     distribution and storage.


関連するリンク
    Online Version: http://go.microsoft.com/fwlink/?LinkId=821655

注釈
    例を参照するには、次のように入力してください: "get-help Expand-Archive -examples".
    詳細を参照するには、次のように入力してください: "get-help Expand-Archive -detailed".
    技術情報を参照するには、次のように入力してください: "get-help Expand-Archive -full".
    オンライン ヘルプを参照するには、次のように入力してください: "get-help Expand-Archive -online"


PS C:>

あとがき

GUI操作でファイルをZIP圧縮したり展開する方法や、サードパーティーの圧縮・解凍ツールを利用する場合は、以下の記事をご覧ください。

Windows10の標準機能でファイルをZIP圧縮したり展開(解凍)する方法
Windows10で、ファイルを圧縮・展開(解凍)する場合、サードパーティーの圧縮・展開ツールを利用している方も多いと思いますが、標準機...
Windows10:圧縮解凍ソフトは「Lhaplus」がおすすめです。
仕事・プライベートを問わず、ZIPなどの圧縮ファイルを利用する機会は結構あります。ですが、現在のWindows10の標準機能では、ZIP...
Windows10で多機能な圧縮・解凍ツールをお探しなら「PeaZip」はどうですか。
Windows10で、圧縮・解凍ツールの定番といえば「lhaplus」ですが、「lhaplus」はシンプルさゆえに、圧縮ファイルから一部...

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ
トップへ戻る