我在命令行上需要做的是:
- 提取 ZIP 档案的内容。
- 更改任意数量的提取文件。
- 重复步骤 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\")