下面是一个完整的示例脚本,可以执行您想要的操作:import sys
def main(pename):
from pefile import PE
pe = PE(pename)
if not 'VS_FIXEDFILEINFO' in pe.__dict__:
print "ERROR: Oops, %s has no version info. Can't continue." % (pename)
return
if not pe.VS_FIXEDFILEINFO:
print "ERROR: VS_FIXEDFILEINFO field not set for %s. Can't continue." % (pename)
return
verinfo = pe.VS_FIXEDFILEINFO
filever = (verinfo.FileVersionMS >> 16, verinfo.FileVersionMS & 0xFFFF, verinfo.FileVersionLS >> 16, verinfo.FileVersionLS & 0xFFFF)
prodver = (verinfo.ProductVersionMS >> 16, verinfo.ProductVersionMS & 0xFFFF, verinfo.ProductVersionLS >> 16, verinfo.ProductVersionLS & 0xFFFF)
print "Product version: %d.%d.%d.%d" % prodver
print "File version: %d.%d.%d.%d" % filever
if __name__ == '__main__':
if len(sys.argv) != 2:
sys.stderr.write("ERROR:\n\tSyntax: verinfo \n")
sys.exit(1)
sys.exit(main(sys.argv[1]))
相关线路为:
^{pr2}$
所有这些都是在检查这些属性是否有意义之后才会发生的。在