・Windows 11でCabファイルを作成したい人
・他社製ソフトを使用せずにCabファイルを作りたい人
Windowsの標準コマンドであるmakecabコマンドを使っていきます.しかし,以下のmakecabの使用方法を見てましたがやり方がいまいち分かりませんでした.単体のファイルなどは簡単にcab化できたのですが,ファイル構成を持った複数のファイルをcab化は簡単にできなさそうでした.そのため,ファイル構成を持ったファイル類をcabにする方法について調べてみたので紹介していきます.
また、今回はWindows PE上でCabファイルを作成します。Windows PEのデフォルト環境にはmakecab.exeが存在していません。Windows 10もしくはWindows 11がインストールされたパソコンにおいてあるmakecab.exeを使用してください。
もしもCabファイルの展開方法を知りたい方は以下を参照してください.
Cabファイルとは
Cabファイル(Cabinet ファイル)について詳細な説明を提供します。Cabファイルは、Microsoft WindowsオペレーティングシステムおよびWindows関連のソフトウェアで広く使用されるファイルフォーマットで、多くの用途に適しています。以下では、Cabファイルの詳細とその主要な特徴について詳しく説明します。
Cabファイルは、Windowsプラットフォームで多岐にわたる用途に使用されるアーカイブファイルフォーマットです。ファイル圧縮、アーカイブ化、データの分配、Windowsの更新、インストール、およびセキュリティ強化において重要な役割を果たしています。
Cabファイルの詳細を知りたい方は以下のMicrosoftのページを参照してください。
Cabファイルの作成
cabファイルを生成するためにmakecabコマンドを使いますが,フォルダ構成を維持するためには /f オプションでddfファイルを指定する必要があります.
ddfファイルを生成してmakecabコマンドでcabファイルを生成するバッチファイルを作成しました.今回はmakecab.batとします.
@echo off
if %1=="" (
echo 引数がありません
echo makecab.bat [Cabファイルを作成したいパス]
exit /b
)
set BEFORE_STRING=%1\
set AFTER_STRING=
setlocal enabledelayedexpansion
echo .Set DestinationDir= > cab.ddf
for %%f in (%1\*) do (
echo "%%f" >> cab.ddf
)
for /d /r %1 %%d in (*) do (
set line=%%d
echo line !line!
echo before !BEFORE_STRING!
echo after !AFTER_STRING!
echo .Set DestinationDir="!line:%BEFORE_STRING%=%AFTER_STRING%!" >> cab.ddf
for %%f in ("%%d\*") do (
echo "%%f" >> cab.ddf
)
)
makecab.exe /f cab.ddf
move /Y disk1\1.cab .\
if exist disk1 rd disk1
if exist cab.ddf del /F cab.ddf
if exist setup.inf del /F setup.inf
if exist setup.rpt del /F setup.rpt
上記バッチファイルを下記のようにcabファイルを作成したいパスを引数として渡します.
makecab.bat [cabファイルを作成したいフォルダパス]
1.cabという名前でファイルが出来上がります.
まとめ
makecab.batを使用して、フォルダ構成を維持したままcabファイルを作成する方法を紹介しました。Windowsの標準コマンドで展開および圧縮できるcabファイルで、データ容量の削減やファイルのやり取りを行ってみてください。
コメント