【发布时间】:2020-02-04 22:00:07
【问题描述】:
我发现了一段代码here 几乎可以满足我的需要,即从存档文件中仅提取一个文件夹。
我唯一遇到的问题是存档名称每月都会更改,因此我想使用通配符。一旦指定了通配符($zipfile 中的 *),该脚本对我不起作用。
如果有任何建议,我将不胜感激。
[Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') | Out-Null
$zipfile = 'C:\ALL\Debtor*.zip'
$folder = 'tmp\st\sd'
$dst = 'C:\ALL\ZipOutput'
[IO.Compression.ZipFile]::OpenRead($zipfile).Entries | ? {
$_.FullName -like "$($folder -replace '\\','/')/*.*"
} | % {
$file = Join-Path $dst $_.FullName
$parent = Split-Path -Parent $file
if (-not (Test-Path -LiteralPath $parent)) {
New-Item -Path $parent -Type Directory | Out-Null
}
[IO.Compression.ZipFileExtensions]::ExtractToFile($_, $file, $true)
【问题讨论】:
标签: powershell wildcard unzip