有没有办法将 zip 文件解压到目录中,但只对更新文件(我的意思是 zip 中的压缩文件)执行此操作?我有一个很大的文件目录,只有大约 20% 是不同的。
最好使用命令行,但这是可选的。我使用 Windows XP。
谢谢。
答案1
随着winzip 命令行插件,您可以使用以下-n
选项:
-n
仅解压较新的文件。如果存档文件较新,此选项将更新现有文件;如果文件尚不存在,则创建新文件。
wzunzip -n "c:\my documents\spring2007.zip" c:\semesters\spring05
此示例将从 c:\my documents\spring2007.zip 中提取仅比 c:\semesters\spring05 中当前存在的文件更新的文件或 c:\semesters\spring05 文件夹中尚不存在的文件。
您可能希望将它与以下-o
选项结合起来 - “在没有提示的情况下覆盖现有文件(对每个覆盖提示自动回复“是”)。”
答案2
以下是一个适合初学者的想法,其他人也需要完成:
- 找到一个列出压缩档案中文件的 zip 程序。
- 列出所有文件和时间戳
- 使用脚本语言(python,batch等)将这些文件的修改时间与目录中的文件进行比较
- 让脚本语言生成参数以将这些文件添加到档案中
或者,分解您的存档文件夹。
答案3
我来晚了 4 年,但是嘿 - 迟到总比不到好。
这是一个仅解压修改过的文件的项目: https://code.google.com/p/unzip-skip-unchanged-files/
来自 TFA:“用 C# 编写的解压工具,在解压每个文件之前检查 MD5 哈希值。 --- 如果哈希值与以前的版本匹配,我们将跳过此文件的提取。 --- 哈希值存储在 NTFS 备用文件流中(在 Linux 上,应该使用 xattr API,但这未在此处实现)”