Hash Powershell-验证zip文件的内容

Hash Powershell-验证zip文件的内容,hash,zip,compression,.net-4.5,powershell-3.0,Hash,Zip,Compression,.net 4.5,Powershell 3.0,我编写了一个简单的powershell脚本,它使用ZipFile.NET Framework类获取一组文件并将它们压缩成zip文件。我想做的是验证文件是否已压缩且没有问题 我可以为zip文件本身创建一个哈希值,但我不确定如何对归档文件中的每个文件执行此操作,或者如何将每个未压缩文件与文件的压缩版本进行比较。这是我脚本的压缩部分 $FileList | ForEach-Object -Begin { $Zip = [System.IO.Compression.ZipFile]::Open("Des

我编写了一个简单的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,并且未安装第三方压缩工具。如果可能的话,我想还是坚持下去。

我想你最直接的方法应该是使用7-Zip

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

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

获取CLI并运行,例如:

7z t archive.zip

我想你最直接的方法是使用7-Zip

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

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

获取CLI并运行,例如:

7z t archive.zip

压缩文件夹A,在文件夹B中解压缩,比较A和B,如果可以的话删除A和B。虽然我确实认为这是一个可能的解决方案,但这些都是压缩率约为99%的大型日志文件。如果可能的话,解压它们会在服务器上造成额外的负载,我想避免这种情况。正在寻找一种不用这个的测试方法。。。哈拉斯·谷歌:)是的。我没有发现任何东西是有人提到验证压缩文件的任何地方。我也试过一些technet文章和微软的脚本编写人网站。也没有答案。压缩文件夹A,在文件夹B中解压缩,比较A和B,如果可以的话删除A和B。虽然我确实认为这是一个可能的解决方案,但这些都是压缩率约为99%的大型日志文件。如果可能的话,解压它们会在服务器上造成额外的负载,我想避免这种情况。正在寻找一种不用这个的测试方法。。。哈拉斯·谷歌:)是的。我没有发现任何东西是有人提到验证压缩文件的任何地方。我也试过一些technet文章和微软的脚本编写人网站。也没有答案。所以没有第三方系统就无法做到这一点?我本可以编写代码来使用7zip命令创建归档文件,但我能够找到一种不用安装任何东西的方法。这才是真正的目标。没有第三方系统就没有办法做到这一点?我本可以编写代码来使用7zip命令创建归档文件,但我能够找到一种不用安装任何东西的方法。这才是真正的目标。