ファイルの圧縮は、データの保管や転送を効率化するために重要な作業です。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圧縮を自動化することで、日々の作業を効率化し、生産性を向上させましょう。