PowerShell を使用してファイルを圧縮および解凍する
PowerShell 5.0 では、Microsoft に zip アーカイブを作成し、既存のアーカイブからファイルを抽出するためのコマンドがあります。この記事では、圧縮ファイルをアーカイブおよび解凍するための PowerShell コマンドについて説明します。
次のコマンドは、PowerShell v5.0 でリリースされた最新のコマンドレットの 2つです。Compress-Archive コマンドは、フォルダーまたは個々のファイルから zip 形式のアーカイブファイルを作成し、Expand-Archive コマンドは、zip 形式のアーカイブファイルからファイルを抽出します。
PowerShell を使用してファイルを圧縮する
PowerShell を使用して、新しい .zip アーカイブ内のファイルを圧縮してみましょう。
-Path パラメーターを使用して、圧縮するフォルダーの場所を指定し、-DestinationPath パラメーターを使用して、作成する圧縮アーカイブの名前を指定します。
たとえば、次のコマンドは、ルート C:ディレクトリに Temp フォルダを圧縮し、Temp フォルダに Temp_Files.zip というアーカイブを作成します。
Compress-Archive -Path C:\Temp -DestinationPath C:\Temp\Temp_Files.zip
または、-Path パラメーターの代わりに -LiteralPath パラメーターを使用して、Temp フォルダー内のファイルを個別に圧縮することもできます。これにより、-LiteralPath パラメータにリストされている 2つのファイルのみを含むアーカイブが作成されます。
Compress-Archive -LiteralPath C:\Temp\File1.txt, C:\Temp\File2.txt -DestinationPath C:\Temp\Temp_Files.zip -Force
作成した最初のアーカイブを上書きするために、-Force パラメーターを追加しました。 -Force パラメーターがないと、既存のアーカイブを置き換えることはできず、Windows PowerShell は代わりにファイルをアーカイブに追加するように要求します。
アーカイブに複数のファイルを追加するには、-Update パラメーターを使用できます。たとえば、次のコマンドは、Invoices フォルダー内のすべてのファイルを既存の Temp_Files.zip アーカイブに追加します。
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip
-CompressionLevel パラメーターは、NoCompression、Optimal、または Fastest の 3つの値のいずれかで使用することもできます。
-CompressionLevel パラメータが式に存在しない場合、Optimal がデフォルト値です。Optimal 圧縮は最適な圧縮を使用しますが、Fastest よりも時間がかかる場合があります。
NoCompression 値を使用して、圧縮なしのアーカイブを作成します。
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip -CompressionLevel Optimal
PowerShell を使用してファイルを解凍する
アーカイブからファイルを抽出するには、アーカイブの名前と解凍したファイルの保存先フォルダーを指定する必要があります。
Expand-Archive コマンドを使用すると、Temp_Files.zip アーカイブの内容が Temp フォルダーに抽出されます。
Expand-Archive -LiteralPath C:\Temp\Temp_Files.Zip -DestinationPath C:\Temp
Expand-Archive は、抽出されたファイルのフォルダを自動的に作成します。
ただし、解凍した圧縮ファイルが宛先フォルダーに既に存在する場合、Expand-Archive はエラーをスローします。コマンドラインに -Force パラメータを追加することで、宛先フォルダ内のファイルを上書きできます。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn