How to Zip (and Unzip) Files Using PowerShell

  • Brady Gavin

    @bradyjgavin

  • June 22, 2020, 11:23am EDT

ZIPファイル形式は、ファイルを1つのファイルに圧縮することで、ファイルのサイズを小さくします。 このプロセスは、ディスクスペースを節約し、データを暗号化し、他の人とファイルを簡単に共有することができます。

How to Zip Files Using PowerShell

まず、Compress-Archiveコマンドレットを使用して、いくつかのファイルをZIPファイルアーカイブに圧縮してみましょう。 このコマンドレットは、圧縮したいファイルのパス (複数のファイルはカンマで区切ります) を受け取り、指定した保存先にアーカイブを作成します。

まず、スタート メニューから PowerShell を検索して開き、次のコマンドを入力します。<PathToFiles><PathToDestination> は、それぞれ圧縮したいファイルのパスと、圧縮先の名前とフォルダーに置き換えてください。

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>
広告

保存先のパスを指定する際には、必ずアーカイブファイルに名前を付けないと、PowerShellが指定した場所に「.zip」として保存されます。

注:パスを囲むクォーテーションは、ファイルパスにスペースが含まれる場合のみ必要です。

代わりに、フォルダーの内容全体とそのサブフォルダーのすべてをzip形式で保存するには、次のコマンドを使用します。<PathToFolder><PathToDestination>をそれぞれ、圧縮したいファイルのパス、保存先の名前とフォルダーに置き換えます。

Compress-Archive -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>

先ほどの例では、複数のファイルやフォルダーが入ったディレクトリへのパスを、個々のファイルを指定せずに入れました。

Advertisement

Compress-Archiveコマンドレットでは、ワイルドカード文字(*)を使ってさらに機能を拡張することができます。 この文字を使用すると、ルート ディレクトリを除外したり、ディレクトリ内のファイルのみを圧縮したり、特定の種類のファイルをすべて選択したりすることができます。

上記では、アーカイブファイルを作成する際に、ルートディレクトリとその中のすべてのファイルやサブディレクトリを含める方法を説明しましたが、アーカイブファイルを作成する際に、ルートディレクトリとその中のすべてのファイルやサブディレクトリを除外したい場合は、-Pathパラメータを使用する必要があります。 しかし、Zipファイルからルートフォルダを除外したい場合は、ワイルドカードを使ってアーカイブから除外することができます。 ファイルパスの最後にアスタリスク (*) を追加することで、PowerShell にルートディレクトリ内のものだけを取得するように指示します。

Compress-Archive -Path C:\path\to\file\* -DestinationPath C:\path\to\archive.zip

次に、さまざまな種類のファイル (.doc、.txt、.jpg など) が入ったフォルダーがあり、ある種類のファイルだけを圧縮したいとします。 この場合、PowerShellに、他のファイルには手を付けずに、それらをアーカイブするように指示することができます。 コマンドの表記は次のようになります。

Compress-Archive -Path C:\path\to\file\*.jpg -DestinationPath C:\path\to\archive.zip

注意: この方法では、サブディレクトリとルート フォルダーのファイルはアーカイブに含まれません。

広告

最後に、ルート ディレクトリとそのすべてのサブディレクトリ内のファイルのみを圧縮するアーカイブが必要な場合は、star-dot-star (*.*) ワイルドカードを使用して zip します。

Compress-Archive -Path C:\path\to\file\*.* -DestinationPath C:\path\to\archive.zip

注意: この方法では、サブディレクトリとルート フォルダーのファイルはアーカイブに含まれません。

アーカイブが完了した後でも、-Update パラメータを使用して既存の zip ファイルを更新することができます。 これにより、アーカイブ内の古いバージョンのファイルを同じ名前の新しいファイルに置き換えたり、ルートディレクトリに作成されたファイルを追加したりすることができます。

Compress-Archive -Path C:\path\to\files -Update -DestinationPath C:\path\to\archive.zip

How to Unzip Files Using PowerShell

PowerShell には、ファイルやフォルダーの圧縮に加えて、アーカイブを解凍する機能があります。 手順は圧縮するよりもさらに簡単で、必要なのは解凍元のファイルとデータの準備ができた保存先だけです。

広告

PowerShellを開き、以下のコマンドを入力します。<PathToZipFile><PathToDestination>を、それぞれ圧縮したいファイルのパスと、圧縮先にしたい名前とフォルダーに置き換えます。

Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

ファイルの解凍先に指定したフォルダには、アーカイブの内容が入ります。

デフォルトでは、-DestinationPath パラメータを省略した場合、PowerShell はコンテンツを現在のルート ディレクトリに解凍し、Zip ファイルの名前を使用して新しいフォルダーを作成します。

先の例では、-DestinationPath を省略すると、PowerShell は「C:Users\brady」というパスに「Archive」というフォルダーを作成し、アーカイブからそのフォルダーにファイルを抽出します。

広告

宛先にすでにフォルダーが存在する場合、PowerShell はファイルを解凍しようとするとエラーを返します。 しかし、-Force パラメータを使用して、PowerShell に強制的に新しいデータで上書きさせることができます。

-Force パラメータは、コンピュータ上のファイルを不可逆的に置き換えることになるため、古いファイルが不要になった場合にのみ使用する必要があります。

Brady Gavin
Brady Gavinは、15年間テクノロジーに没頭し、150以上の詳細なチュートリアルや説明書を書いてきました。 Windows 10のレジストリハックからChromeブラウザのヒントまで、あらゆる分野をカバーしています。 ブレイディは、BC州ビクトリアのCamosun Collegeでコンピュータサイエンスのディプロマを取得しています。 Read Full Bio “

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です