プログラムで zip アーカイブを作成したり、既存のアーカイブからファイルを取り出したりすると便利な場合があります。Windows PowerShell 5.0 では、そのための 2 つの cmdlet が追加されました。The Compress-Archive cmdlet を使うと、フォルダーや個々のファイルから新しいアーカイブを作成し、アーカイブにファイルを追加できます。 Extract-Archive はファイルの解凍(アンジップ)に使用できます。
厳選した関連コンテンツ:
システムに PowerShell 5.0 以降がまだインストールされていない場合は、Microsoft のWebサイトから Windows Management Framework の最新バージョンをダウンロードできます。
PowerShell を使って Zip ファイルを作成する
まずは、PowerShell を使って新しい zip アーカイブにファイルを圧縮するところから始めましょう。必要なのは -Path パラメーターで圧縮したいフォルダーを指定し、–DestinationPath パラメーターで作成したいアーカイブ名を指定することです。以下のコマンドは、ルートの C ディレクトリにある Invoices フォルダーを zip 化し、Archives フォルダーに Invoices.zip という名前のアーカイブを作成します:
Compress-Archive -Path C:Invoices -DestinationPath C:ArchivesInvoices
別の方法として、-LiteralPath を使って Invoices フォルダー内のファイルを個別に zip 化することもできます。–Path の代わりにします。このコマンドは、–LiteralPath パラメーターで明示的に指定された 2 つのファイルだけを含むアーカイブを作成します:
Compress-Archive -LiteralPath C: InvoicesFile1.txt, C:InvoicesFile2.txt -DestinationPath C:ArchivesInvoices -Force
最初のコマンドで作成したアーカイブを上書きするために -Force パラメーターを追加したことに注目してください。-Force パラメーターがない場合、既存のアーカイブは上書きできず、PowerShell は代わりにアーカイブへファイルを追加するよう促します。
アーカイブにファイルを追加するには、-Update パラメーターを使用します。以下のコマンドは、Invoices フォルダー内のすべてのファイルを、既存の Invoices.zip アーカイブに追加します:
Compress-Archive -Path C:Invoices* -Update -DestinationPath C:ArchivesInvoices
必要に応じて、-CompressionLevel パラメーターに次の3つの値のいずれかを指定できます:Optimal、NoCompression、または Fastest。-CompressionLevel パラメーターが設定されていない場合、Optimal が既定の設定です。利用可能な最良の圧縮を使用しますが、Fastest を使う場合より時間がかかる可能性があります。圧縮しないアーカイブを作成するには、NoCompression の値を使用してください。
おすすめの関連コンテンツ:
PowerShell を使ってファイルを解凍する
アーカイブからファイルを抽出するのは、作成するよりもさらに簡単です。行うことは、アーカイブ名と、解凍後のファイルを配置する宛先フォルダーを指定するだけです。以下のコマンドは、Expand-Archive cmdlet を使用して、Invoices.zip アーカイブの内容を InvoicesUnzipped というフォルダーに抽出します。
Expand-Archive -LiteralPath C:ArchivesInvoices.Zip -DestinationPath C: InvoicesUnzipped
ファイルを解凍するフォルダーは、あらかじめ存在している必要はありません。Expand-Archive は必要に応じて自動的にフォルダーを作成します。ただし、解凍したいファイルがすでに宛先フォルダーに存在する場合は、 Expand-Archive がエラーを返します。宛先フォルダー内のファイルを上書きするには、-Force パラメーターをコマンドに追加してください。
共有する
もっと詳しく
著者について
Russell Smith
ITコンサルタント
管理およびセキュリティ技術を専門とする IT コンサルタント兼著者です。Russell は IT 分野で 15 年以上の経験があり、Windows セキュリティに関する書籍を執筆し、Microsoft の Official Academic Course(MOAC)シリーズ向けの教材も共著しています。