How can you zip or unzip from the script using ONLY Windows' built-in capabilities?

To expand upon Steven Penny's PowerShell solution, you can incorporate it into a batch file by calling powershell.exe like this:

powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', 'bar'); }"

As Ivan Shilo said, this won't work with PowerShell 2, it requires PowerShell 3 or greater and .NET Framework 4.


Tar

Windows 10 includes tar.exe:

# example 1
tar.exe -a -c -f out.zip in.txt
# example 2
tar.exe -x -f out.zip

https://techcommunity.microsoft.com/t5/containers/-/ba-p/382409

If you have older Windows, you can still download it:

https://github.com/libarchive/libarchive/releases

PowerShell

# example 1
Compress-Archive in.txt out.zip
# example 2
Expand-Archive out.zip

https://docs.microsoft.com/powershell/module/microsoft.powershell.archive

Directory

For both tools, you can use a file or directory for the input.


If you have Java installed, you can compress to a ZIP archive using the jar command:

jar -cMf targetArchive.zip sourceDirectory

c = Creates a new archive file.

M = Specifies that a manifest file should not be added to the archive.

f = Indicates target file name.