プログラムでZIPアーカイブを作成したり、既存のアーカイブからファイルを抽出したりするのが便利な場合があります。 Windows PowerShell 5.0 では、そのための 2 つのコマンドレットが追加されました。 Compress-Archive コマンドレットは、フォルダーや個々のファイルから新しいアーカイブを作成したり、ファイルをアーカイブに追加したりすることができます。
Using PowerShell to Create Zip Files
まず、PowerShell を使用して、新しい zip アーカイブ内のファイルを圧縮してみましょう。 必要なのは、-Path パラメーターで圧縮したいフォルダーを指定し、-DestinationPath パラメーターで作成するアーカイブの名前を指定することだけです。
Compress-Archive -Path C:\Invoices -DestinationPath C:\Archives\Invoices
別の方法として、-Path の代わりに -LiteralPath を使用して、Invoices フォルダ内のファイルを個別に圧縮することもできます。
Compress-Archive -LiteralPath C:\ Invoices\File1.txt, C:\Invoices\File2.txt -DestinationPath C:\Archives\Invoices -Force
最初のコマンドで作成したアーカイブを上書きするために -Force パラメータを追加したことに注意してください。
アーカイブにファイルを追加するには、-Updateパラメータを使用します。 以下のコマンドは、Invoices フォルダー内のすべてのファイルを既存の Invoices.zip アーカイブに追加します:
Compress-Archive -Path C:\Invoices\* -Update -DestinationPath C:\Archives\Invoices
オプションとして、-CompressionLevel パラメーターに 3 つの値のいずれかを使用できます。 Optimal」、「NoCompression」、「Fastest」の3つの値があります。 Optimalは、-CompressionLevelパラメータが設定されていない場合のデフォルト設定で、利用可能な最良の圧縮を使用しますが、Fastestよりも時間がかかる場合があります。
Using PowerShell to Unzip Files
アーカイブからファイルを抽出するのは、アーカイブを作成するよりも簡単です。 必要なのは、アーカイブの名前と、解凍したファイルの保存先フォルダを指定するだけです。 以下のコマンドは、Expand-Archive コマンドレットを使用して、Invoices.zip アーカイブの内容を InvoicesUnzipped という名前のフォルダーに抽出します。
Expand-Archive -LiteralPath C:\Archives\Invoices.Zip -DestinationPath C:\ InvoicesUnzipped
ファイルを解凍するフォルダーは存在しなくてもかまいません。必要に応じて Expand-Archive が自動的にフォルダーを作成します。 しかし、解凍したいファイルが既に解凍先のフォルダに存在する場合、Expand-Archiveはエラーを返します。