Команда DIANTZ — это псевдоним утилиты MAKECAB, встроенной в Windows для создания архивов в формате Microsoft Cabinet (.cab). CAB-файлы используются в дистрибутивах Windows Update, пакетах драйверов и установщиках MSI для хранения сжатых файлов в одном контейнере.
- Синтаксис команды DIANTZ
- Ключи и параметры
- Примеры использования
- Упаковать один файл в CAB-архив
- Упаковать несколько файлов через файл директив
- Упаковка с подробным выводом для диагностики
- Сохранить CAB-файл в отдельную папку
- Распаковать CAB-архив (через EXPAND)
- Проверить содержимое CAB без распаковки
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- В чём разница между DIANTZ и MAKECAB?
- Как добавить несколько файлов в CAB без .ddf файла?
- Можно ли задать уровень сжатия в DIANTZ?
- Как распаковать CAB-архив из командной строки?
- Работает ли DIANTZ на Windows 10 и 11?
Синтаксис команды DIANTZ
DIANTZ [/V[n]] [/D var=value ...] [/L dir] исходный_файл [файл_назначения] DIANTZ [/V[n]] [/D var=value ...] /F директивный_файл ...
Плейсхолдеры:
исходный_файл— путь к файлу, который нужно упаковать в CAB.файл_назначения— имя выходного CAB-архива (если не указан, формируется автоматически).директивный_файл— файл директив (.ddf) с описанием структуры CAB-архива для сложных случаев.var=value— переменная конфигурации (например,Cabinet=ON,MaxDiskSize=1444).
Ключи и параметры
| Ключ | Описание | Пример |
|---|---|---|
/V[n] | Уровень подробности вывода: 0 — тихий режим, 1 (по умолчанию) — стандартный, 2 — подробный | DIANTZ /V2 file.txt archive.cab |
/D var=value | Задать переменную директивы прямо из командной строки без .ddf файла | DIANTZ /D Cabinet=ON /D MaxDiskSize=1444 file.txt out.cab |
/L dir | Папка для сохранения выходного CAB-файла (вместо текущей директории) | DIANTZ /L C:\Output file.txt archive.cab |
/F файл.ddf | Использовать файл директив Diamond Directive File для описания содержимого архива | DIANTZ /F setup.ddf |
Примеры использования
Упаковать один файл в CAB-архив
Простейший случай — сжать один файл для передачи или установки.
DIANTZ C:\logs\app.log C:\Output\app.cab
Файл app.log будет сжат и помещён в app.cab. Степень сжатия зависит от типа содержимого — текстовые файлы сжимаются значительно лучше двоичных.
Упаковать несколько файлов через файл директив
Для упаковки нескольких файлов с контролем структуры создаётся .ddf файл. Пример setup.ddf:
; setup.ddf .OPTION EXPLICIT .Set CabinetNameTemplate=setup.cab .Set DiskDirectoryTemplate=C:\Output .Set Cabinet=ON .Set MaxDiskSize=0 C:\dist\readme.txt C:\dist\setup.exe C:\dist\config.ini
Запуск:
DIANTZ /F setup.ddf /V1
Результат — файл C:\Output\setup.cab, содержащий три файла.
Упаковка с подробным выводом для диагностики
При отладке сборочного процесса полезно видеть, что именно добавляется в архив.
DIANTZ /V2 /D Cabinet=ON C:\build\app.exe C:\Output\app.cab
Режим /V2 выведет каждый добавляемый файл, размер до и после сжатия, коэффициент компрессии.
Сохранить CAB-файл в отдельную папку
Если нужно чётко разделить рабочие файлы и готовые архивы:
DIANTZ /L C:\Release\Cabs driver.inf C:\Release\Cabs\driver.cab
Ключ /L задаёт базовую папку для выходных файлов при работе с .ddf директивами.
Распаковать CAB-архив (через EXPAND)
DIANTZ создаёт архивы, но не распаковывает их. Для извлечения файлов используется встроенная команда EXPAND:
EXPAND C:\Output\app.cab -F:* C:\Extracted\
Флаг -F:* извлечёт все файлы из архива в папку C:\Extracted\.
Проверить содержимое CAB без распаковки
Для просмотра списка файлов внутри архива используйте EXPAND с ключом -D:
EXPAND -D C:\Output\app.cab
Команда выведет список файлов и их размеры без извлечения.
Частые ошибки и решения
| Ошибка / симптом | Причина | Решение |
|---|---|---|
| «DIANTZ не является внутренней или внешней командой» | В некоторых версиях Windows DIANTZ.EXE отсутствует или не добавлен в PATH | Использовать вместо него MAKECAB — это тот же инструмент с более стабильным присутствием в системе |
| Ошибка в .ddf файле: «ERROR: Syntax error» | Неверный формат директивного файла: лишние пробелы, неправильный разделитель или отсутствие обязательных директив | Проверить отступы и кавычки; убедиться, что .ddf сохранён в кодировке ANSI (не UTF-8 с BOM) |
| Выходной CAB-файл не создаётся, нет ошибок | Папка назначения не существует | Создать папку вручную перед запуском: mkdir C:\Output |
| CAB-файл создан, но некоторые файлы в нём отсутствуют | Пути к файлам в .ddf содержат пробелы без кавычек | Заключить пути с пробелами в кавычки: "C:\My Files\app.exe" |
| EXPAND не может открыть CAB, созданный DIANTZ | CAB повреждён из-за прерванной записи или нехватки места на диске | Проверить свободное место на диске назначения; повторить создание архива |
Когда применять, а когда нет
Команда DIANTZ (=MAKECAB) актуальна при сборке пакетов драйверов (.inf + .sys), создании дистрибутивов для Windows Installer и автоматизации упаковки файлов в CAB-формате для последующей установки через EXPAND или msiexec. Не требует прав администратора.
Не используйте DIANTZ для создания обычных пользовательских архивов вместо ZIP или 7-Zip: инструмент ориентирован на задачи дистрибуции ПО, а не на повседневное архивирование. Для ZIP из командной строки в Windows используйте PowerShell.
Аналог в PowerShell для создания ZIP-архивов: Compress-Archive -Path C:\files\* -DestinationPath C:\Output\archive.zip. Для работы именно с CAB в PowerShell нет встроенного командлета — используйте вызов makecab через Start-Process или &.
FAQ
В чём разница между DIANTZ и MAKECAB?
Функционально — никакой. DIANTZ — это псевдоним (копия или символическая ссылка) MAKECAB.EXE. В некоторых версиях Windows DIANTZ может отсутствовать, тогда как MAKECAB присутствует всегда. Рекомендуется использовать MAKECAB для лучшей совместимости.
Как добавить несколько файлов в CAB без .ddf файла?
Стандартный синтаксис DIANTZ позволяет указать только один исходный файл напрямую. Для упаковки нескольких файлов необходимо создать .ddf файл директив. Альтернатива — вызов MAKECAB несколько раз с параметром продолжения кабинета.
Можно ли задать уровень сжатия в DIANTZ?
Метод сжатия задаётся через директиву .Set CompressionType в .ddf файле. Доступные значения: NONE, MSZIP (аналог DEFLATE), LZX (лучшее сжатие). Пример: .Set CompressionType=LZX.
Как распаковать CAB-архив из командной строки?
Используйте встроенную команду EXPAND: EXPAND архив.cab -F:* папка_назначения\. Также можно открыть .cab файл через Проводник Windows — он отображается как папка.
Работает ли DIANTZ на Windows 10 и 11?
MAKECAB присутствует во всех версиях Windows включая 10 и 11. Сам DIANTZ.EXE может отсутствовать в системе — в таком случае используйте MAKECAB с идентичным синтаксисом.


