Команда EXPAND извлекает файлы из CAB-архивов (Cabinet) — сжатых контейнеров, которые Windows использует для хранения системных компонентов, драйверов и обновлений. Она работает в CMD без установки дополнительного ПО и особенно полезна при ручном восстановлении повреждённых системных файлов.
- Синтаксис команды EXPAND
- Ключи и параметры
- Примеры использования
- Извлечь все файлы из CAB-архива
- Просмотр содержимого CAB без извлечения
- Восстановить один системный файл
- Переименовать сжатые файлы при извлечении
- Извлечь только DLL-файлы из крупного CAB
- Извлечь в плоскую структуру без вложенных папок
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- Чем EXPAND отличается от EXTRACT (EXTRAC32)?
- Можно ли извлечь отдельный файл из CAB по точному имени?
- Почему EXPAND не работает с ZIP-архивами?
- Нужны ли права администратора для EXPAND?
- Как посмотреть список файлов в CAB без распаковки?
- EXPAND работает в PowerShell?
Синтаксис команды EXPAND
EXPAND [-r] [-d] [-i] [-f:файлы] источник [назначение]
Плейсхолдеры:
источник— путь к CAB-файлу или сжатому файлу (можно использовать маски).назначение— путь к папке или файлу, куда будут помещены распакованные файлы. Если не указан, файл извлекается в текущий каталог.-f:файлы— маска файлов внутри CAB для избирательного извлечения, например-f:*.infили-f:*для всех.
Ключи и параметры
| Ключ | Описание | Пример |
|---|---|---|
-r | Переименовывает извлечённые файлы — убирает сжатый суффикс (например, .ex_ → .exe) | EXPAND -r file.ex_ C:\out |
-d | Только показывает список файлов внутри CAB, без извлечения | EXPAND -d archive.cab |
-i | При извлечении игнорирует путь к каталогу, сохранённый внутри CAB (все файлы попадают в плоскую структуру) | EXPAND -i -f:* arch.cab C:\flat |
-f:маска | Извлекает только файлы, совпадающие с маской | EXPAND -f:*.dll arch.cab C:\out |
источник | Путь к CAB-файлу или файлу со сжатым суффиксом (.ex_, .dl_) | C:\dist\update.cab |
назначение | Папка или полный путь к файлу для результата | C:\Windows\System32 |
Примеры использования
Извлечь все файлы из CAB-архива
Базовый сценарий: достать всё содержимое архива в указанную папку.
EXPAND -f:* C:\Updates\update.cab C:\Extracted
Все файлы из update.cab появятся в папке C:\Extracted. Если папка не существует, команда вернёт ошибку — создайте её заранее.
Просмотр содержимого CAB без извлечения
Перед распаковкой удобно проверить, что именно находится внутри архива.
EXPAND -d C:\Updates\driver.cab
Команда выведет список файлов с их именами и размерами, не трогая файловую систему.
Восстановить один системный файл
Типовой сценарий при ручном восстановлении без sfc: достать конкретную DLL из установочного CAB.
EXPAND -f:shell32.dll C:\Windows\i386\shell32.ca_ C:\Windows\System32\shell32.dll
Файл будет извлечён и помещён точно по нужному пути с нужным именем.
Переименовать сжатые файлы при извлечении
Установочные CAB часто хранят файлы со сжатым расширением (.ex_, .dl_). Ключ -r автоматически восстанавливает оригинальные расширения.
EXPAND -r C:\source\notepad.ex_ C:\dest
Файл будет сохранён как notepad.exe, а не notepad.ex_.
Извлечь только DLL-файлы из крупного CAB
Если архив содержит сотни файлов, а нужны только библиотеки.
EXPAND -f:*.dll C:\Updates\component.cab C:\DLLs
В папку C:\DLLs попадут только файлы с расширением .dll.
Извлечь в плоскую структуру без вложенных папок
Некоторые CAB содержат внутреннюю иерархию каталогов. Ключ -i игнорирует её.
EXPAND -i -f:* C:\Updates\nested.cab C:\flat_output
Все файлы окажутся в одном каталоге C:\flat_output, независимо от вложенности в CAB.
Частые ошибки и решения
| Ошибка / симптом | Причина | Решение |
|---|---|---|
| Каталог назначения не существует — команда завершается с ошибкой | EXPAND не создаёт каталоги автоматически | Сначала создайте папку: MKDIR C:\Extracted |
| Файл не найден при указании относительного пути | Текущий рабочий каталог CMD не совпадает с расположением CAB | Указывайте полные абсолютные пути к источнику и назначению |
| Ничего не извлекается, нет ошибки | Маска -f: не совпадает ни с одним файлом в CAB | Сначала проверьте содержимое через EXPAND -d архив.cab, уточните имена |
| Доступ запрещён при записи в System32 | Недостаточно прав | Запустите CMD от имени администратора |
«Не является CAB-файлом» при попытке извлечь .ex_ | Одиночные сжатые файлы — не CAB, синтаксис другой | Для .ex_/.dl_ используйте EXPAND -r файл.ex_ путь_назначения без -f: |
Когда применять, а когда нет
Команда EXPAND оптимальна для работы с системными CAB-архивами Windows — установочными файлами, пакетами обновлений и образами драйверов. Она встроена в систему и не требует ничего дополнительного. Команда не умеет работать с ZIP, RAR, 7z и другими форматами архивов — для них нужны сторонние инструменты. Запись в системные каталоги (System32, SysWOW64) требует прав администратора. Аналог в PowerShell — Expand-Archive, однако он работает только с ZIP-файлами, а не с CAB.
FAQ
Чем EXPAND отличается от EXTRACT (EXTRAC32)?
EXPAND — более современный инструмент, присутствующий во всех версиях Windows NT. EXTRACT/EXTRAC32 — устаревший инструмент из эпохи Windows 9x, в Windows 10/11 он недоступен. Для работы с CAB используйте EXPAND.
Можно ли извлечь отдельный файл из CAB по точному имени?
Да: EXPAND -f:имя_файла.dll C:\архив.cab C:\папка. Имя файла регистрозависимо, поэтому сначала проверьте точное написание через EXPAND -d.
Почему EXPAND не работает с ZIP-архивами?
Команда поддерживает только формат CAB (Cabinet) и одиночные сжатые файлы (.ex_, .dl_). Для ZIP в PowerShell используйте Expand-Archive -Path arch.zip -DestinationPath C:\out.
Нужны ли права администратора для EXPAND?
Для извлечения в пользовательские каталоги — нет. Для записи в системные папки (C:\Windows\System32 и т.п.) — обязательно запускайте CMD от имени администратора.
Как посмотреть список файлов в CAB без распаковки?
Используйте ключ -d: EXPAND -d C:\путь\архив.cab. Команда выведет имена и размеры всех файлов внутри архива.
EXPAND работает в PowerShell?
Да, вы можете вызвать expand.exe из PowerShell с теми же ключами. Нативный аналог в PowerShell (Expand-Archive) работает только с ZIP, поэтому для CAB по-прежнему нужен expand.exe.


