【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ファイルに圧縮できます。

よくある質問(FAQ)

Q. Windows標準機能でZIP圧縮するにはどうすればよいですか?
A. PowerShellを利用します:powershell -Command "Compress-Archive -Path 'C:\src' -DestinationPath 'C:\out.zip'"。追加する場合は-Updateオプション。.NET Framework 4.5以降が必要ですがWindows 8以降には標準搭載されています。7-zipなど外部ツールが使える環境ではよりシンプルに実装できます。
Q. ZIP圧縮する際にパスワードを設定するにはどうすればよいですか?
A. Windows標準のCompress-Archiveはパスワード設定に対応していません。パスワード付きZIPが必要な場合は7-zip(7z.exe a -p"パスワード" out.zip src)やWinRARなどの外部ツールを使う必要があります。または.NETのSystem.IO.Compression名前空間をPowerShellから呼び出す方法もあります。
Q. 大きなファイルのZIP圧縮を分割する(分割ZIP)にはどうすればよいですか?
A. Windows標準機能では分割ZIPは作成できません。7-zipを使います:7z.exe a -v100m out.zip srcで100MB分割のZIPを作成します(out.zip.001, .002…形式)。解凍時も7-zipが必要です。分割サイズはk(キロ)・m(メガ)・g(ギガ)で指定できます。

まとめ

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

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