Expand-Archive
Extracts files from a specified ZIP archive file.
Syntax
Expand-Archive
[-Path] <String>
[[-DestinationPath] <String>]
[-Force]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Expand-Archive
-LiteralPath <String>
[[-DestinationPath] <String>]
[-Force]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Expand-Archive
cmdlet extracts files from a specified zipped archive file to a specified
destination folder. An archive file allows multiple files to be packaged, and optionally compressed,
into a single zipped file for easier distribution and storage.
The Expand-Archive
cmdlet uses the System.IO.Compression.ZipArchive API to compress files.
The API limits the maximum file size to 2GB. The .NET API works with files that conform to the
official ZIP file format specification by PKWARE Inc. For more information, see
System.IO.Compression.ZipArchive.
Examples
Example 1: Extract the contents of an archive
This example extracts the contents of an existing archive file into the folder specified by the DestinationPath parameter.
Expand-Archive -LiteralPath 'C:\Archives\Draft[v1].zip' -DestinationPath C:\Reference
In this example, the LiteralPath parameter is used because the filename contains characters that could be interpreted as wildcards.
Example 2: Extract the contents of an archive in the current folder
This example extracts the contents of an existing archive file in the current folder into the folder specified by the DestinationPath parameter.
Expand-Archive -Path Draftv2.zip -DestinationPath C:\Reference
Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DestinationPath
By default, Expand-Archive
creates a folder in the current location that's the same name as the
ZIP file. The parameter allows you to specify the path to a different folder. The target folder is
created if it doesn't exist.
Type: | String |
Position: | 1 |
Default value: | A folder in the current location |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Use this parameter to overwrite existing files. By default, Expand-Archive
doesn't overwrite.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Specifies the path to an archive file. Unlike the Path parameter, the value of LiteralPath is used exactly as it's typed. Wildcard characters aren't supported. If the path includes escape characters, enclose each escape character in single quotation marks, to instruct PowerShell not to interpret any characters as escape sequences.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Causes the cmdlet to output a list of the files expanded from the archive.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Specifies the path to the archive file.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet isn't run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
You can pipe a string that contains a path to an existing archive file.
Outputs
None
By default, this cmdlet returns no output.
When you use the PassThru parameter, this cmdlet returns a list of files that were expanded from the archive.
Notes
The Compress-Archive
cmdlet uses UTF-8 encoding. Other ZIP archive tools may use a different
encoding scheme. When extracting files with filenames not stored using UTF-8 encoding,
Expand-Archive
uses the raw value found in the archive. This can result in a filename that's
different than the source filename stored in the archive.
Related Links
PowerShell