【bat】バッチファイルでZIP圧縮を簡単に実行する方法

ファイルの圧縮は、データの保管や転送を効率化するために重要な作業です。Windows環境でZIP圧縮を自動化する方法として、バッチファイルを使う方法があります。本記事では、PowerShellを使用する方法と、7-Zipというサードパーティツールを使用する方法の2つをご紹介します。

PowerShellを使用する

PowerShellは、Windowsに標準でインストールされている強力なコマンドラインツールです。追加のソフトウェアをインストールする必要がないため、手軽に利用できます。

以下は、PowerShellを使って指定したディレクトリをZIP圧縮するバッチファイルの例です。

@echo off
setlocal

REM 圧縮するフォルダと出力ZIPファイルのパスを指定
set "source_folder=C:\path\to\source\folder"
set "zip_file=C:\path\to\output\file.zip"

REM PowerShellスクリプトを実行してZIP圧縮
powershell.exe -NoProfile -Command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::CreateFromDirectory('%source_folder%', '%zip_file%'); }"

echo ZIP圧縮が完了しました: %zip_file%

endlocal
exit /b 0

このスクリプトを実行することで、source_folderに指定したフォルダをzip_fileに指定したZIPファイルに圧縮できます。

7-Zipを使用する

7-Zipは、強力で高機能なファイル圧縮ツールです。コマンドラインからも操作できるため、自動化に非常に便利です。以下の手順で7-Zipを使ってZIP圧縮を行うバッチファイルを作成します。

まず、7-Zipをインストールします。次に、以下の内容でバッチファイルを作成します。

@echo off
setlocal

REM 7-Zipのパス(7z.exeがあるディレクトリ)
set "7zip_path=C:\Program Files\7-Zip"

REM 圧縮するフォルダと出力ZIPファイルのパスを指定
set "source_folder=C:\path\to\source\folder"
set "zip_file=C:\path\to\output\file.zip"

REM 7-Zipを使用してZIP圧縮
"%7zip_path%\7z.exe" a -tzip "%zip_file%" "%source_folder%\*"

echo ZIP圧縮が完了しました: %zip_file%

endlocal
exit /b 0

このスクリプトを実行することで、source_folderに指定したフォルダをzip_fileに指定したZIPファイルに圧縮できます。

まとめ

バッチファイルを使ったZIP圧縮の方法として、PowerShellと7-Zipを使用する方法をご紹介しました。どちらの方法も簡単に実行でき、用途に応じて使い分けることができます。PowerShellは追加のインストールが不要で手軽に試せる一方、7-Zipはより多機能で高速に動作するため、ファイル圧縮を頻繁に行う場合に適しています。

ZIP圧縮を自動化することで、日々の作業を効率化し、生産性を向上させましょう。