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.