バッチコマンドでWindowsに追加インストール無しでZIP圧縮を行う方法
Windowsを普通に使っていてファイルをZIPに圧縮するのは対象ファイルを右クリックすることで簡単に行えます。
では、バッチ処理や各種ツールにコマンドとして圧縮処理を組み込みたい場合はどうすればいいでしょうか。
WindowsのバッチコマンドにはZIP圧縮するコマンドが用意されていません。
この記事ではZIP圧縮をPowerShellを併用することで実行する方法を解説します。
目次
1.PowerShellでZIP圧縮する
実はバッチコマンドにZIP圧縮するコマンドには用意されていないのですがPowerShellのコマンドレットにはあります。
構文は以下です。
【構文】
【使用例】
以下のファイルを圧縮する例です。
ファイルパス 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で行うことが出来ます。
構文は以下となります。
【構文】
【使用例】
以下のファイルを解凍する例です。
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] 解凍先のパス [パラメータ]