SEARCH

BYTE SIZE TIPS / QUICK, HELPFUL TIPS

How-To Geek

How to Extract ZIP Files Using PowerShell

image

Windows includes the ability to unzip archives and even exposes this functionality programmatically via COM. Here is how to do it.

How to Extract ZIP Files Using PowerShell

We have seen this question asked numerous times on Stack Overflow and forums alike but most of the time people recommend using the PowerShell Community Extensions or a legacy command line application. Truth be told, its not actually all that hard to do in PowerShell.

$shell = new-object -com shell.application
$zip = $shell.NameSpace(“C:\howtogeeksite.zip”)
foreach($item in $zip.items())
{
$shell.Namespace(“C:\temp\howtogeek”).copyhere($item)
}

Hardcoding values isn’t really ideal so lets make it into a quick function.

function Expand-ZIPFile($file, $destination)
{
$shell = new-object -com shell.application
$zip = $shell.NameSpace($file)
foreach($item in $zip.items())
{
$shell.Namespace($destination).copyhere($item)
}
}

Then we can simply use the function like this:

Expand-ZIPFile –File “C:\howtogeeksite.zip” –Destination “C:\temp\howtogeek”

Remember to add this  to your Windows PowerShell profile, so that you don’t need third-party libraries for functionality that is already included out of the box.

Notable Replies

  1. DavidRuhmann

    This PowerShell unzip ability is further enhanced by the optional second parameter for the CopyHere function.

    I use vOption = 16 in my scripts. (Yes to All prompts)

    PowerShell (New-Object -COM Shell.Application).NameSpace('DESTINATION').CopyHere((New-Object -COM Shell.Application).NameSpace('ZIPFILE.zip').Items(), 16);

Taylor Gibb is a Microsoft MVP and all round geek, he loves everything from Windows 8 to Windows Server 2012 and even C# and PowerShell. You can also follow him on Google+

  • Published 06/13/13

RECOMMENDED POSTS

Enter Your Email Here to Get Access for Free:

Go check your email!