Windows 10 で PowerShell を使用してファイルを Zip/Unzip する方法
基本的に ZIP ファイル形式は、ファイルを 1 つのファイルに圧縮することで、ファイルのサイズを縮小します。 このプロセスは、ディスクスペースを節約し、データを暗号化し、他の人とファイルを簡単に共有することができます。
How to zip files using PowerShell
まず、Compress-Archiveコマンドレットを使用して、いくつかのファイルをZIPファイルのアーカイブに圧縮します。
以下の手順を実行します。
Windows キー + X を押して Power User メニューを開き、キーボードの I を押して PowerShell を起動します。
次に、以下の構文を入力します。 PathToFiles>PathToDestination>のプレースホルダーを、それぞれ圧縮したいファイルのパスと、圧縮したファイルの名前とフォルダに置き換えます。
Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>
注意: 保存先のパスを指定する際には、必ずアーカイブファイルに名前を付けないと、PowerShellが指定した場所に「.zip」として保存されてしまうので注意が必要です。 また、パスを囲むクォーテーションは、ファイルパスにスペースが含まれている場合のみ必要であることに留意してください。
代わりに、フォルダとそのサブフォルダの内容全体をzip形式で保存するには、上記と同じ構文を使用します。 PathToFiles>PathToDestination>のプレースホルダーを、それぞれ圧縮したいファイルへのパスと、圧縮したい名前とフォルダに置き換えます。
以下の画像のようになります。
このコマンドは、複数のファイルやフォルダーが含まれるディレクトリに、個々のファイルを指定せずにパスを置きます。
Read: How to open .TAR.GZ, .TGZ or .GZ.
ワイルドカード文字 (*) 機能
Compress-Archive コマンドレットでは、ワイルドカード文字 (*) を使用して、機能をさらに拡張することができます。 この文字を使用すると、ルート ディレクトリを除外したり、ディレクトリ内のファイルのみを圧縮したり、特定の種類のファイルをすべて選択したりすることができます。
さて、上記の2つの例では、アーカイブ ファイルを作成する際に、ルート ディレクトリとそのすべてのファイルおよびサブディレクトリを含める方法を見てきました。 しかし、Zipファイルからルートフォルダを除外したい場合は、ワイルドカードを使ってアーカイブから除外することができます。 ファイルパスの最後にアスタリスク(*)を追加することで、PowerShellはルートディレクトリの中にあるものだけを取り込みます。 正しい構文を以下に示します。
Compress-Archive -Path C:\path\to\file\* -DestinationPath C:\path\to\archive.zip
さて。 さまざまな種類のファイル(.docx、.txt、.jpg)が入ったフォルダがある場合。docx、.txt、.jpgなど)がたくさんあるが、1種類のファイルだけを圧縮したい場合、以下のような構文を使用できます。 PowerShell は、指定されたファイルをアーカイブし、他のファイルには明示的に手を触れません。 この方法では、サブディレクトリとルート フォルダのファイルはアーカイブに含まれないことに注意してください。
Compress-Archive -Path C:\path\to\file\*.docx -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
これで、Windows 10 の PowerShell を使用してファイルを zip 化するさまざまなシナリオのプロセスが終了しました。
Read: How to install CURL on Windows 10.
How to Unzip files using PowerShell
すでにご覧になったように、PowerShellはファイルの圧縮に使用できます。 このユーティリティは、アーカイブを解凍することもできます。
PowerShell を使用してファイルを解凍するには、次のようにします。
次に、以下の構文を入力します。 PathToZipFile>PathToDestination>のプレースホルダを、それぞれ圧縮したいファイルのパスと行き先の名前とフォルダに置き換えます。
Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>
ファイルの解凍先として指定されたフォルダには、アーカイブの内容が入ります。
デフォルトでは、-DestinationPath パラメーターを省略した場合、PowerShell はコンテンツを現在のルート ディレクトリに解凍し、Zip ファイルの名前を使用して新しいフォルダーを作成します。
この例では、コマンドに Docs というフォルダが指定されているので、PowerShell は C:Users\Chidum.Osobalu というパスに Docs というフォルダを作成し、アーカイブからファイルをそのフォルダに解凍します。
宛先に Docs というフォルダーが既に存在する場合、PowerShell がファイルを解凍しようとするとエラーが返されることに注意してください。
古いファイルが不要になった場合にのみ -Force パラメータを使用する必要があります。
そしてこれで、Windows 10のPowerShellユーティリティを使用してファイルをzip/unzipする方法についてのテーマを終了します!