我写了一个简单的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并且未安装第三方压缩工具。如果可能的话,我想坚持下去。
答案 0 :(得分:0)
我猜你最直接的拍摄就是使用7-Zip。
您可以在PowerShell中使用本机命令。
您可以找到使用-t
开关here的示例。
获取CLI,add 7-Zip folder to your path并运行例如:
7z t archive.zip