PowerShell:从压缩的存档中提取特定的文件/文件夹

ant*_*nio 4 powershell zip unzip archive

foo.zip包含:

a
b
c
|- c1.exe 
|- c2.dll 
|- c3.dll
Run Code Online (Sandbox Code Playgroud)

a, b, c文件夹在哪里。

如果我

Expand-Archive .\foo.zip -DestinationPath foo 
Run Code Online (Sandbox Code Playgroud)

foo.zip提取所有文件/文件夹。
我只想提取c文件夹。

Esp*_*o57 7

尝试这个

Add-Type -Assembly System.IO.Compression.FileSystem

#extract list entries for dir myzipdir/c/ into myzipdir.zip
$zip = [IO.Compression.ZipFile]::OpenRead("c:\temp\myzipdir.zip")
$entries=$zip.Entries | where {$_.FullName -like 'myzipdir/c/*' -and $_.FullName -ne 'myzipdir/c/'} 

#create dir for result of extraction
New-Item -ItemType Directory -Path "c:\temp\c" -Force

#extraction
$entries | foreach {[IO.Compression.ZipFileExtensions]::ExtractToFile( $_, "c:\temp\c\" + $_.Name) }

#free object
$zip.Dispose()
Run Code Online (Sandbox Code Playgroud)