バッチコマンドでWindowsに追加インストール無しでZIP圧縮を行う方法

2022年2月13日

Windowsを普通に使っていてファイルをZIPに圧縮するのは対象ファイルを右クリックすることで簡単に行えます。

では、バッチ処理や各種ツールにコマンドとして圧縮処理を組み込みたい場合はどうすればいいでしょうか。

WindowsのバッチコマンドにはZIP圧縮するコマンドが用意されていません。

この記事ではZIP圧縮をPowerShellを併用することで実行する方法を解説します。

1.PowerShellでZIP圧縮する

実はバッチコマンドにZIP圧縮するコマンドには用意されていないのですがPowerShellのコマンドレットにはあります。

構文は以下です。

【構文】

Compress-Archive [-Path] 圧縮したいファイルパス [-DestinationPath] 圧縮後のzipファイル [パラメータ]

【使用例】

以下のファイルを圧縮する例です。
ファイルパス  C:¥TEMP¥sample.txt

 

Compress-Archive -Path C:\TEMP\sample.txt -DestinationPath C:\TEMP\sample.zip

-DestinationPathのパラメータとしてZIPファイル名を指定します。

また、圧縮する際に既に同じ名前のZIPファイルが存在する場合はエラーとなってしまいます。

この場合は以下のように「-force」オプションを指定することで上書きしてくれます。

Compress-Archive -Path C:\TEMP\sample.txt -DestinationPath C:\TEMP\sample.zip -Force

 

スポンサードサーチ

2.PowerShellで解凍する

ZIPファイルを解凍するのもPowerShellで行うことが出来ます。

構文は以下となります。

【構文】

Expand-Archive [-Path] 圧縮したいファイルパス [-DestinationPath] zipファイルの解凍先パス [パラメータ]

【使用例】

以下のファイルを解凍する例です。
ZIPファイルパス  C:¥TEMP¥sample.zip

Expand-Archive -Path C:\TEMP\sample.zip -DestinationPath C:\TEMP

注意する点は、解凍先に指定するのはファイル名ではなくディレクトリ名となります。

また、既に解凍するファイル名と同じ名前のファイルが存在する場合はエラーになりますので「-Force」オプションを付けることで上書きしてくれます。

Expand-Archive -Path C:\TEMP\sample.zip -DestinationPath C:\TEMP -Force

 

スポンサードサーチ

3.バッチファイルとして実行する

PowerShellでZIPファイルを扱えることはお分かりいただけたと思います。

これをバッチファイルで使うには「PowerShell」コマンドの引数にそのままPowerShellのコマンドレットを記述します。

前述のファイルを圧縮する例です。

Powershell Compress-Archive -Path C:\TEMP\sample.txt -DestinationPath C:\TEMP\sample.zip

実行したところ

 

4.まとめ

ZIPファイルをバッチファイルで圧縮、解凍を行うにはPowerShellのコマンドレットを使用します。

【圧縮】
Powershell Compress-Archive [-Path] 圧縮したいファイルパス [-DestinationPath] 圧縮後のzipファイル [パラメータ]

【解凍】
Powershell Expand-Archive [-Path] 圧縮したいファイルパス [-DestinationPath] 解凍先のパス [パラメータ]