Put the Squeeze on Files with Compact.exe
Maybe it is my Midwestern heritage, but I like to be thrifty and economical. Perhaps that is why I like file compression; I can keep the file but only consume a minimal amount of space. Back in the day we typically turned compression on at the folder level, which is still probably a good thing. But sometimes you might want to take a more granular approach. Turns out you can accomplish both with a command line tool called Compact.exe.
First, how do we use Compact.exe? As with most command line tools, let’s start by asking for help:
C:\> compact /?
C:\work>compact /q Listing C:\work\ New files added to this directory will not be compressed. Of 445 files within 1 directories 0 are compressed and 445 are not compressed. 962,585,132 total bytes of data are stored in 962,585,132 bytes. The compression ratio is 1.0 to 1.
This folder has no compressed files. If you run the command without /Q you’ll get details for all the files. I know there are a lot of text files which compress well so I’m going to compress them like this:
C:\work>compact /c /s *.txt Compressing files in C:\work\ a.txt 322158 : 81920 = 3.9 to 1 [OK] a2.txt 322174 : 81920 = 3.9 to 1 [OK] add-perm.txt 5444 : 4096 = 1.3 to 1 [OK] addpermission.txt 1829 : 1829 = 1.0 to 1 [OK] addpermission2.txt 8643 : 4096 = 2.1 to 1 [OK] … Compressing files in C:\work\secret\ New Text Document.txt 37 : 37 = 1.0 to 1 [OK] 115 files within 25 directories were compressed. 13,014,911 total bytes of data are stored in 3,799,246 bytes. The compression ratio is 3.4 to 1.
That looked pretty successful! The /S told the utilty to recurse through all the subfolders as well and compress any TXT files. I have a few other file types in C:\Work that will also compress well.
C:\work>compact /c /s *.csv *.xml *.ps1
After looking at the results almost all of the folder is compressed so I might as well simply turn on compression at the folder level. This ensures that any new file will automatically get compressed.
C:\work>compact /c /s . Setting the directory C:\work\ to compress new files [OK] 1 files within 1 directories were compressed. 0 total bytes of data are stored in 0 bytes. The compression ratio is 1.0 to 1.
This didn’t compress any additional files, just marked the folder as compressed. If at some point I felt the need to uncompress everything it is this easy:
C:\work>compact /u /s /i *.* C:\work>compact /u /s . Setting the directory C:\work\ not to compress new files [OK] 1 files within 1 directories were uncompressed.
Now all the files are uncompressed and C:\Work is back to normal.
Compact.exe is a very handy and easy to use utility, but I suggest testing it out in a non-production environment to avoid any surprises.
More in Windows Client OS
Using Windows Boot Manager to Fix Startup Errors on Windows
Jun 29, 2022 | Sukesh Mudrakola
Microsoft Starts Rolling Out Edge WebView2 to Windows 10 PCs
Jun 28, 2022 | Rabia Noureen
Microsoft's June 2022 Patch Tuesday Updates Fix Several Remote Code Execution Vulnerabilities
Jun 15, 2022 | Laurent Giret
Using GPUpdate to Manage Group Policy
Jun 13, 2022 | Michael Reinders
How to Reset a Windows 10 Password
Jun 1, 2022 | Michael Otey
The Top 10 Ipconfig Commands You Should Learn
May 27, 2022 | Michael Taschler
Most popular on petri