Windows 命令行 ZIP 提取带有校验和或类似功能吗?

Windows 命令行 ZIP 提取带有校验和或类似功能吗?

我在命令行上需要做的是:

  1. 提取 ZIP 档案的内容。
  2. 更改任意数量的提取文件。
  3. 重复步骤 1,但因为这是一个巨大的档案,所以只提取步骤 2 中更改的文件的存档副本,这样速度会快得多。

理想情况下,步骤 3 中的提取会对磁盘上​​的文件执行类似校验和的操作,并且仅提取存档中的文件具有不同校验和的文件。或者比较磁盘文件上的日期更改戳。

目前我使用的是 pkzipc.exe,它是 PkZip 的命令行版本。但我看不出有什么办法可以用它。您可以从存档中提取比磁盘文件更新的文件,但从某种意义上说,我想要的恰恰相反。

答案1

我一直在寻找一个程序,可以使用 zip 文件中的 CRC32 来了解文件是否已更改,但如果你只关心日期/时间戳和大小,树组件可以为你工作。

答案2

嗯,也许我误解了你想做什么,但是为什么你不保留要更改的文件的第二份副本(在步骤 2 中)?

您需要重新提取有什么特殊原因吗?

7-Zip有一个命令行版本,无论如何我建议你看一下,我更喜欢它,而不是我用过的所有其他 Windows 归档工具。

答案3

你可以制作一个小的Powershell函数:

Function MyZip($Source,$Destination){
  "MD5 Hash: $((certutil -hashFile "$Source")[1])"
  Expand-Archive "$Path" "$Destination"
}

它将首先显示 zip 文件的 MD5 哈希值,然后将存档扩展至目标。调用:

MyZip("Source.zip","C:\Destination\")

相关内容