# Archive Module
The Archive module Microsoft.PowerShell.Archive provides functions for storing files in ZIP archives (Compress-Archive) and extracting them (Expand-Archive). This module is available in PowerShell 5.0 and above.
In earlier versions of PowerShell the Community Extensions (opens new window) or .NET System.IO.Compression.FileSystem (opens new window) could be used.
# Compress-Archive with wildcard
Compress-Archive -Path C:\Documents\* -CompressionLevel Optimal -DestinationPath C:\Archives\Documents.zip
This command:
- Compresses all files in
C:\Documents - Uses
Optimalcompression - Save the resulting archive in
C:\Archives\Documents.zip -DestinationPathwill add.zipif not present.-LiteralPathcan be used if you require naming it without.zip.
# Update existing ZIP with Compress-Archive
Compress-Archive -Path C:\Documents\* -Update -DestinationPath C:\Archives\Documents.zip
- this will add or replace all files
Documents.zipwith the new ones fromC:\Documents
# Extract a Zip with Expand-Archive
Expand-Archive -Path C:\Archives\Documents.zip -DestinationPath C:\Documents
- this will extract all files from
Documents.zipinto the folderC:\Documents
# Syntax
Expand-Archive / Compress-Archive
- -Path
- the path of the file(s) to compress (Compress-Archive) or the path of the archive to extract the file(s) form (Expand-Archive)
there are several other Path related options, please see below.
if you do not supply this path, the archive will be created in the current working directory (Compress-Archive) or the contents of the archive will be extracted into the current working directory (Expand-Archive)
# Parameters
| Parameter | Details |
|---|---|
| CompressionLevel | (Compress-Archive only) Set compression level to either Fastest, Optimal or NoCompression |
| Confirm | Prompts for confirmation before running |
| Force | Forces the command to run without confirmation |
| LiteralPath | Path that is used literaly, no wildcards supported, use , to specify multiple paths |
| Path | Path that can contain wildcards, use , to specify multiple paths |
| Update | (Compress-Archive only) Update existing archive |
| WhatIf | Simulate the command |
# Remarks
See MSDN Microsoft.PowerShell.Archive (5.1) (opens new window) for further reference