Powershell - 验证zip文件的内容

时间:2015-12-21 20:48:43

标签: hash zip compression .net-4.5 powershell-v3.0

我写了一个简单的powershell脚本,它使用ZipFile .NET Framework类获取一组文件并将它们压缩成zip文件。我想要做的是验证压缩文件没有问题。

我可以为zip文件本身创建一个哈希值,但我不确定如何对存档中的每个单独文件执行此操作,或者将每个未压缩文件与文件的压缩版本进行比较。这是我脚本的压缩部分。

$FileList | ForEach-Object -Begin {
$Zip = [System.IO.Compression.ZipFile]::Open("Destination.Zip","Create")
} -Process {
[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($Zip,$_.FullName,$_.Name,"optimal")
} -End {
$Zip.Dispose()
}

我知道压缩片有效,但最终的目标是验证每个文件并在验证失败时重做该文件。然后删除未压缩的文件。

此系统仅运行PowerShell v3并且未安装第三方压缩工具。如果可能的话,我想坚持下去。

1 个答案:

答案 0 :(得分:0)

我猜你最直接的拍摄就是使用7-Zip。

您可以在PowerShell中使用本机命令。

您可以找到使用-t开关here的示例。

获取CLI,add 7-Zip folder to your path并运行例如:

7z t archive.zip