How do I extract an InstallShield Cabinet file?

Solution 1:

One of my favorite little helpers:

Universal Extractor is a program doing exactly what it says: extract files from any type of archive, whether it's a simple ZIP file, an installation program, or even a Windows Installer (.msi) package.

... and indeed anything Installshield (see list below).

alt text

Archive Type    Common File Extension(s)
7-zip archive   .7z, .exe
ACE archive     .ace
ARC archive     .arc
ARJ archive     .arj, .exe
ASpack compressed file  .exe
BIN/CUE CD-ROM image    .bin, .cue
bzip2 archive   .bz2, .tbz2, .tar.bz2
CPIO compressed file    .cpio
Debian package  .deb
DiscJuggler CD-ROM image    .cdi
Encoded files   .b64, .uu, .uue, .xx, .xxe, .yenc, .ntx
Gentee package  .exe
gzip archive    .gz, .tgz, .tar.gz
IMG floppy disk image   .img
Inno Setup package  .exe
Installer VISE package  .exe
InstallShield Cabinet archive   .cab, .1, .lib
InstallShield package   .exe
ISO 9660 CD-ROM image   .iso
KGB archive     .kgb, kge, .exe
LZH compressed file     .lzh, .lha
LZMA compressed file    .lzma
LZO compressed file     .lzo
LZW compressed file     .Z, .tz, .tar.Z
LZX compressed file     .lzx
MHTML file  .mht
Microsoft Cabinet archive   .cab, .exe, .imf
Microsoft Compiled Help file    .chm
Microsoft compressed file   .??_
Microsoft LIT e-book    .lit
Microsoft Windows Help file     .hlp
Nero CD-ROM images  .nrg
NSIS package    .exe
Oasis Document Format (ODF) document    .odt, .odp, .odg, .ods
Office Open XML (OOXML) document    .docx, .pptx, .xlsx
Outlook Express mail archive    .dbx
PEA archive     .pea
RAR archive     .rar, .001, .exe
Reflexive Arcade package    .exe
RoboForm package    .exe
RPM package     .rpm
SetupFactory package    .exe
SIS (SymbianOS) packages    .sis
StuffIt packages    .sit
TAR archive     .tar, .tbz2, .tgz, .tz, .tar.bz2, .tar.gz, .tar.z
UHARC archive   .uha
UPX compressed file     .exe, .dll
Windows Imaging Format image    .wim
Windows Installer package   .msi
Windows Installer patch     .msp
Windows Update Standalone patch     .msu
Wise Installer package  .exe
ZIP archive     .zip, .jar, .xpi, .wz, .exe
Zoo archive     .zoo

Universal Extractor is freeware and portable.

It's a brilliant utility to extract drivers or installers to make applications 'portable' and as they claim, it really works for pretty much any form of archive.

Solution 2:

"i6comp" (UniExtract) and/or "unshield" is a wasted effort anymore. Anything equal or over InstallShield v12 (InstallScript Projects) will not extract. InstallShield's own "CabView" (ISCabVu.exe) will let you do one file at a time. But I need to extract over 10,000 files for each separate language to rebuild an installer. So in this regard it doesn't help much either.

The only option I have found is taking the IS2009 "iscab.exe" (last version released) and placing in my IS2010 system directory. Add IS "system" path to your %path% ENV. Ended up having to create 15 separate INI files, but got all the LANG dependent files separated. Certainly beats using Cab View and repeating an extract 10,000 times!

Example:

{create a "blank" INI file. This will hold all file information from cab(s)}

Run command to add all files to your new main INI:

iscab.exe ..\MyAppSetupDir\data1.cab -i"allfiles.ini" -lx

{Backup "allfiles.ini". Edit a new INI based on above that only includes files you want to extract}

iscab.exe ..\MyAppSetupDir\data1.cab -i"MyEditedISCabIni.ini" -x

NOTE: You will have to recreate the parent level folders yourself or you will get an error.

Seems rather ridiculous to me that ISCabVu limits you to 1 file at a time when in fact they had made the utility detailed above. They no longer distribute this utility ( >= IS2010). Very frustrating and odd.

Edit (2016):
Some may be able to still use iscab.exe from last uniextract commit on older IS setup's:
https://code.google.com/archive/p/uniextract/source/default/source
(Download 'source' and look for iscab.exe in archive)

Flex site:
ISCabExe (They removed help site).

Edit (2016):
Please also see this post & answers.
Also have a look at Unshield (currently maintained) as well as UniExtract2 projects.