【バッチファイル】ファイル/フォルダをZIP形式で圧縮する

バッチファイルから
 ・ファイル/フォルダをZIP圧縮
できます!
※ここで紹介するのは「パスワード無しZIPファイル」の作成(圧縮)方法です。

バッチファイルから
 ・Power Shellのコマンドレットを実行
することで実現します!
※コマンドレット「Compress-Archive」により実現します。

実行結果も取得できます!
※正常終了の場合、実行結果は「0」になります。
※異常終了の場合、実行結果は「1」になります。

コード

ここでは例として
 ・デスクトップ配下の約1GBのフォルダ「test」を圧縮
 ・デスクトップ配下にファイル「test.zip」として作成
します。

フォルダ「test」
フォルダ「test」のサイズは約1GB

※圧縮対象は「フォルダ」でなく「ファイル」でも大丈夫です。

@echo off

rem ZIP形式で圧縮するフォルダ(またはファイル)パスを指定
set targetPath=C:\Users\user\Desktop\test
rem 解凍(展開)先フォルダを指定
set zipFilePath=C:\Users\user\Desktop\test.zip

rem 実行するPowerShellのコマンドレットを組み立て
set psCommand=powershell -NoProfile -ExecutionPolicy Unrestricted Compress-Archive -Path %targetPath% -DestinationPath %zipFilePath% -Force

rem PowerShellのコマンドレットを実行
%psCommand%

rem 実行結果を確認
if %errorlevel% == 0 (
    echo 正常終了しました。戻り値:%errorlevel%
) else (
    echo 異常終了しました。戻り値:%errorlevel%
)
echo.
pause
exit

「ZIP形式で圧縮するフォルダパス(またはファイルパス)」を指定します(4行目)。
「作成するZIPファイルのパス」を指定します(6行目)。

実行するPower Shellのコマンドレットを組み立てます(9、10行目)。
※実行するPower Shellのコマンドレット「Compress-Archive」を組み立てます
※オプション「-Force」により、作成するZIPファイルが既に存在する場合は上書きします。

フォルダを圧縮します(13行目)。
※Power Shellのコマンドレット「Compress-Archive」を実行します。
※「フォルダ」でなく「ファイル」でも圧縮できます。

「if」と環境変数「errorlevel」により、「戻り値(実行結果)」を判定します(16~20行目)。

実行結果

フォルダをZIP形式で圧縮できました。
※「フォルダ」でなく「ファイル」でも圧縮できます。

実行結果①
実行結果①
実行結果②
実行結果②
実行結果③
実行結果③


サイズが圧縮されていることも確認できました。
※「約1GB」から「約0.17GB(=約170MB)」へ圧縮されました。

実行結果④
実行結果④

参考①

ZIP形式のファイルを解凍(展開)することもできます。

詳細は以下の記事をご確認ください。

参考②

圧縮する前に、圧縮するファイル/フォルダの存在確認をしたほうがよいです。

ファイル/フォルダの存在確認の詳細は、以下の記事をご確認ください。

参考③

上記で使用した以下の詳細は、公式サイトをご確認ください。

●Power Shellのコマンドレット「Compress-Archive」

タイトルとURLをコピーしました