如何在PowerShell v2.0中压缩文件

时间:2019-06-10 06:04:04

标签: powershell-2.0

我正在使用PowerShell 2.0,并且无法更新到更高版本。我需要能够将文件夹压缩为ZIP。我已经检查了Stack Overflow,却发现没有任何帮助。

这是我尝试过的一件事,它引发了错误。

Add-Type -Assembly "System.IO.Compression.FileSystem"
[io.compression.zipfile]::CreateFromDirectory("Source", "Destination")

我希望它压缩在“源”中指定的文件夹,并将其放入指定的“目的地”

我收到此错误: 添加类型:无法添加类型。找不到程序集“ System.IO.Compression.FileSystem”。

1 个答案:

答案 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
}

不好意思的大写字母-它使我的眼睛受伤-但我相信您会随心所欲地修饰它。

如果这是一个很好的答案,请这样标记;否则,请告诉我发生了什么问题,我将尝试加以改善。