Создание сжатых файлов формата .cab в операционных системах Windows.



Cabinet (.cab) — формат файлов архивов, применяющийся в операционных системах семейства Microsoft Windows. Формат поддерживает сжатие и цифровые подписи. Используется в различных технологиях установщиков Microsoft. Для создания архивов формата .cab имеется стандартная утилита командной строки makecab.exe. Формат командной строки:

MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]

MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]


Параметры командной строки:

source - исходный файл.

destination - сжатый файл. Если имя файла не указано, то используется имя исходного файла, в котором последний символ заменяется подчеркиванием.

/F directives - имя файла с директивами для утилиты MAKECAB, используемыми при выполнении сжатия. Описание директив приводится в документации к пакету Microsoft Cabinet SDK

/D var=value - определение переменных, используемых в программе. Аналог директивы .Set, используемой в файлах директив.

/L dir - каталог для сохранения сжатых файлов, если не указан, то используется текущий.

/V[n] - уровень детализации сообщений программы.

Примеры использования:

makecab image1.ghost - сжать файл image1.ghost. В результате выполнения команды в текущем каталоге будет создан сжатый файл с именем image1.gh_

makecab image1.ghost image1.ghost.cab - сжать файл image1.ghost и результат сохранить в текущем каталоге под именем image1.ghost.cab

makecab image1.ghost image1.ghost.cab /L C:\CABs - то же, что и в предыдущем примере, но результат записывается в каталог C:\CABs

makecab –V3 image1.ghost image1.ghost.cab /L C:\CABs - то же, что и в предыдущем примере, но с максимальным уровнем информационных сообщений (уровень сжатия, место сохранения и т.п.)

makecab /F cabmake.ddf - сжать исходные файлы в соответствии с директивами в файле cabmake.ddf

Пример содержимого файла директив:

.OPTION EXPLICIT

; Строка комментария начинается с символа ;

; Шаблон имени сжатого файла CabinetNameTemplate:

.Set CabinetNameTemplate=Destination.CAB

;Параметры сжатия:

.Set Cabinet=on

.Set Compress=on

;Список сжимаемых файлов:

"image1.ghost"

"image2.iso"

"file3.wav"

Строки, начинающиеся с точки с запятой (;) используются в качестве комментариев. В результате выполнения команды MAKECAB с такими директивами, будет создан архив из 3- х указанных файлов, с именем Destination.cab, в подкаталоге disk1 текущего каталога. По умолчанию, архивирование выполняется с учетом того, чтобы архив или его часть помещалась на дискету 1.44Мб, в противном случае, архив разбивается на части и записывается в подкаталоги disk1, disk2, … Максимальный размер части архива можно изменить, указав параметры для CDROM:

.Set MaxDiskSize=cdrom

.Set ClusterSize=cdrom

Можно также указать произвольный максимальный размер в байтах, кратный размеру кластера ( по умолчанию – 512 байт), например для 512 МБ:

.Set MaxDiskSize=536870912

.Set ClusterSize=512

Для изменения имени подкаталога, принятого по умолчанию (disk1) можно использовать директиву DiskDirectoryTemplate:

.Set DiskDirectoryTemplate=C:\CABs* ; Создавать архивы в отдельных каталогах CABs1,CABs2…

.Set DiskDirectoryTemplate=C:\CABs ;Создавать архивы в указанном каталоге

.Set DiskDirectoryTemplate= ; Создавать архивы в текущем каталоге.

При большом количестве исходных файлов, для получения их списка удобно использовать команду DIR с выводом результатов в текстовый файл:

dir /b /l /A-D /O:N %windir%\System32 > filelist.txt

По данной команде формируется список файлов каталога \Windows\System32 в алфавитном порядке без имен подкаталогов с именами в нижнем регистре и записывается в текстовый файл filelist.txt, откуда его содержимое можно скопировать в файл с директивами команды MAKECAB.

При создании архивов командой MAKECAB создаются файлы setup.rpt и setup.inf, содержащие перечень обработанных файлов, сведения об их количестве, степени сжатия, скорости обработки данных и т.п.

Для распаковки архивов, созданных утилитой MAKECAB можно использовать утилиту командной строки extrac32.exe.








Весь список команд CMD Windows