他小的有

Python脚本自动修改.rc文件版本号

    发布软件时,需要修改.rc文件的版本号再编译工程,以便于当模块出现问题快速确定所使用模块的版本号,可使用Python在编译前进行自动修改版本号再编译发布:

    //util_modify_rc_file_version.py

# modify .rc file version
import sys,re

if __name__=="__main__":
    filename = sys.argv[1]
    version = sys.argv[2]
    versionMacro = version.replace('.', ',')
    versionString = version.replace(',', '.')
    filename = filename.replace("\\\\","\\")
    f = open(filename, 'r', encoding='utf-16')
    lines = f.readlines()
    newLines = []
    for line in lines:
      if line.startswith(' FILEVERSION '):
        line = ' FILEVERSION ' + versionMacro + '\n'
      elif line.startswith(' PRODUCTVERSION '):
          line = ' PRODUCTVERSION ' + versionMacro + '\n'
      else:
          line = re.sub( r'(\s+VALUE\s"FileVersion",\s+)"(.*)"',r'\1"%s"' % versionString, line)
          line = re.sub( r'(\s+VALUE\s"ProductVersion",\s+)"(.*)"',r'\1"%s"' % versionString, line)
      newLines.append(line)

    f.close()
    f = open(filename, 'w', encoding='utf-16')
    f.writelines(newLines)
    f.close()

    示例:

python "C:\util_modify_rc_file_version.py" "C:\demo.rc" "1.2.3.4"

    说明:传入的第一个参数是要修改的.rc文件路径,第二个参数是版本号

    其它:配合Jenkins在发布时自动修改版本号效果更佳,一劳永逸 :)

    注意:我当前使用的是VS2015生成的.rc文件默认编码是utf-16 little endian,其它编码请自行修改打开和保存.rc文件的编码,另外要在执行这个脚本修改.rc文件版本后再编译项目哟~

本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!

0
分享到:

评论 0

取消
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址