压缩软件命令行用法

只更新压缩包中已有的文件内容

用7z.exe
  • 命令7z.exe u c:\exist.zip -ur0w0 c:\update_dir

  • 原理解释:查看7z的帮助文件得下图(可自行查看帮助并对比)

  • 根据英文可知,更新压缩包的命令u的默认配置为下图红框所标识,转换为命令行为 -up1q1r2x1y2z1w2,

  • r的意思是硬盘上有的且压缩包中没有的,2的意思是将硬盘的文件压缩到压缩包中;

  • w的意思是状态不明(时间一致,但内容不一致);

  • 再看我们的需求,只有硬盘上和压缩包中都有的时候才更新文件,其他情况不管。

  • 查看帮忙硬盘和压缩包中都有的情况用命令描述为y,默认已经配置为更新到压缩包了(即y的取值为2),

  • 测试发现,只用u命令不指定参数时,压缩包中没有的文件也会被添加进来,核对帮助文档,发现硬盘中有且压缩包中没有的情况为r,默认情况下的取值为2,也就是会新加到压缩包中,这不是我们想要的

  • 通过-u命令指定其取值为0(忽略)。同理w的取值默认为2,这个要根据你个人的需求来设置了,如果默认值符合你的要求,你可以不指定,不符合时,根据需要修改;

  • 说明:如果c:\update_dir目录下有多级目录,则7z会近按照路径来匹配,这个可以放心使用;

用winrar
  • 命令行:winrar.exe af c:\exist.zip c:\update_dir, 我之前测试失败了,现象:多级目录下的文件没有刷新,后面有时间再看看具体是什么原因;弃用winrar的原因:添加时会有个窗口弹出,比较烦;本来通过winrar.exe c:\exist.zip c:\update_dir\first\second\file.txt,也可以达到目的,但实在太慢了!无法忍!

猜你喜欢

转载自www.cnblogs.com/FairlyHarmony/p/11427521.html