7z使用中,关于解压时的覆盖提示和子文件夹解压失败处理方法

时间:2022-09-14 19:08:00

工程中使用7z解压缩有一个问题,困扰了很久,今天在解决另一个问题时终于找到根治办法了。

最近接到一个新需求,需要把支持x86和x64的驱动文件打包到一个7z压缩文件中,这样在使用的时候根据不同平台自动复制需要的驱动文件到安装目录安装即可。

但实际操作的时候发现了一个问题:

文件

foo.exe

test.exe

和src\文件夹要打到一个压缩包vpn.7z中

其中src\文件夹包含了一些其他文件。


在使用7z解压命令

7z e    PATH\vpn.7z    -o PATH时发现     所有的压缩包文件都解压到PATH路径中,包含了src\中的文件,并删除了src\中本来存在的文件。

这不是我想要的结果,需求是保持src\结构,和压缩前一致。


最后查到的结果是 要使用  x 代替上述的e

如:  7z x    PATH\vpn.7z    -o PATH

另外,为了防止由于路径中文件已存在,覆盖时提示但后台进程未处理,导致7z一直挂起在后台。可以使用 -y 参数


最终使用了7z x    -y  PATH\vpn.7z    -o PATH


附带别人的详细介绍链接

http://www.cnblogs.com/top5/archive/2011/04/27/2030960.html