安装包(*.exe)使用7z自行解压
2013-05-06 18:02
176 查看
今天接到一个小活,需要在打包平台中接一个小脚本。需要对*.exe安装包进行解压并对其解压后的文件进行数字签名认证。起初以为是多么easy的事情,结果在实际操作中发现通过使用import zipfile、import tarfile均宣告解压失败。
不过发现7z到是可以解压,
“zip_command = r'C:\Progra~1\7-Zip\7z' + " "+"x %s -y -o%s" %(filePath,target)”直接通过os.system执行该命令行,搞定!
备注:命令行中参数“x”为全路径解压,相当于在*.exe文件上右键执行“7-zip|提取到.....”。开始使用的参数“e”,结果递归把*.exe中包含的二级exe文件也解压了(eg:安装包中的执行exe和uninstall.exe等)。-y 跳过询问一路执行到底,-o设置输出路径
解压成功剩下的就nice了:
不过发现7z到是可以解压,
#!/usr/bin/env python # -*- coding: UTF-8 -*- import os import sys def Extract_File(filePath,target): """""" zip_command = r'C:\Progra~1\7-Zip\7z' + " "+"x %s -y -o%s" %(filePath,target) print zip_command os.system(zip_command)
“zip_command = r'C:\Progra~1\7-Zip\7z' + " "+"x %s -y -o%s" %(filePath,target)”直接通过os.system执行该命令行,搞定!
备注:命令行中参数“x”为全路径解压,相当于在*.exe文件上右键执行“7-zip|提取到.....”。开始使用的参数“e”,结果递归把*.exe中包含的二级exe文件也解压了(eg:安装包中的执行exe和uninstall.exe等)。-y 跳过询问一路执行到底,-o设置输出路径
解压成功剩下的就nice了:
def recursion_File(path): for root,dir,files in os.walk(path): for file in files: #调用小工具循环执行签名验证
相关文章推荐
- linux下安装压缩解压程序7z命令及7z命令的使用
- 使用7z压缩解压数据
- 不使用installutil.exe安装WINDOWS服务
- linux下安装7z命令及7z命令的使用
- 安装VS2008的Win7:gacutil.exe、sn.exe 所在位置及如何使用gacutil.exe注册强命名程序集至GAC中
- 使用srvany.exe将程序安装成windows服务的详细教程
- 使用InstallAnywhere7.1制作Java exe程序安装包
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
- Linux上安装7zip使用教程及zip中文文件名解压乱码解决方法。
- 使用 netbeans 为 Java/JavaFX 程序生成启动器(exe)或者安装程序(exe,msi)
- 使用srvany.exe把程序安装成windows服务
- 使用InstallAnywhere7.1制作Java exe程序安装包
- windows下的mysql-5.6.22-winx64解压过后怎么安装,没有setup.exe
- 使用InstallUtil.exe安装Windows服务
- 使用instsrv.exe和srvany.exe将应用程序安装成windows后台服务
- sts eclipse 反编译插件免安装 解压就可使用
- Linux 7z命令的安装和使用
- 使用mstest.exe 命令行跑test case(不安装Visual Studio 2010)