我正在使用PowerShell 2.0,并且无法更新到更高版本。我需要能够将文件夹压缩为ZIP。我已经检查了Stack Overflow,却发现没有任何帮助。
这是我尝试过的一件事,它引发了错误。
Add-Type -Assembly "System.IO.Compression.FileSystem"
[io.compression.zipfile]::CreateFromDirectory("Source", "Destination")
我希望它压缩在“源”中指定的文件夹,并将其放入指定的“目的地”
我收到此错误: 添加类型:无法添加类型。找不到程序集“ System.IO.Compression.FileSystem”。
答案 0 :(得分:0)
欢迎您!
首先,这可能是How to create a zip archive with PowerShell?的副本-但是,我相信我的回答要好一些,因此我将其发布。
我怀疑未加载程序集是安装的.NET Framework的问题,而不是Powershell版本FWIW的问题。您可能希望看到here。
人手最少的答案可能是杰夫·希克斯(Jeff Hicks)的帖子here。如果链接变暗,我将其删节至裸露的骨头:
Set-Content $OutputPath ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
$ZipFile = Get-Item $OutputPath
$ZipFile.IsReadOnly = $false
$shell = New-Object -com shell.application
$zipPackage = $shell.NameSpace($zipfile.fullname)
$zipPackage.CopyHere($Path)
为完整起见,以下是等效的解压缩程序:
$shell = new-object -com shell.application
$zip = $shell.NameSpace($Path)
foreach($item in $zip.items())
{
$shell.Namespace($Destination).CopyHere($item) | out-null
}
不好意思的大写字母-它使我的眼睛受伤-但我相信您会随心所欲地修饰它。
如果这是一个很好的答案,请这样标记;否则,请告诉我发生了什么问题,我将尝试加以改善。