[强起!]Pr工程版本转换脚本—用低版本Pr打开高版本工程

大概一年前我写过一篇文章:[强起!]用低版本Pr打开高版本工程攻略

一年内有许多朋友跟我说这种方法太繁琐,能不能简单点。

还有就是7-zip这个软件官网没有MacOS版本可供下载所以MacOS没法参照攻略降低Pr工程的版本。

今天告诉大家一个好消息——工作在MacOS的‘PR工程版本转换脚本’发布啦

先附上链接地址:https://pan.baidu.com/s/1dZWKiuEDtUm6EAnOREQAeA

项目依然开源:https://github.com/lhy2871/changeprversion

p.s.看在我暑假里还这么勤劳的份上是不是该表示一下

“`该脚本基于python,在MacOS 10.14 Mojave Beta(18A336e)下测试通过“`

使用方法为:

1)打开终端

2)输入python空格

3)将该脚本拖到终端

4)将要转换的文件拖入终端

5)回车后按照提示继续

就是像这样子:

w1

w2w3w4w5

红框中的文件就是新生成的修改了版本号的Pr工程文件

普通使用者看到这就行了

哦,当然欢迎大家滑到文章最下方,按下那个叫做“赞赏”的按钮

会发生可爱的事情哟~

Have a nice day~

接下来简单解释下脚本,以便需要二次开发的朋友解读:

————首先感谢————

本项目在Easync团队某脚本的启发下才最终完成,感谢Easync团队

————感谢完毕————

大致流程图:

w0

脚本首先定义函数read_xml(in_file),get_version(tree),show_choices(),set_version();

分别用于读取xml,获取输入文件的版本代号,显示脚本可以转换的PR版本信息,改写xml中的版本号

def read_xml(in_file):  
  '''''读取并解析xml文件 
    in_path: xml路径 
    return: ElementTree'''  
  tree = ElementTree()  
  tree.parse(in_file)  
  return tree

读取xml

def get_version(tree):
  root = tree.getroot();
  for child in root.findall("Project"):
    if not child.get("Version"):
      continue
  print '\033[1;35mcurrentVersion is:\033[0m '+child.get("Version")

获取输入文件的版本代号

def show_choices():
  print "\033[1;31;40mWhat version do you want to change?\033[0m\n1) PR CC 2018.1 -- 35\n2) PR CC 2018   -- 34\n3) Pr CC 2017.1 -- 33\n4) Pr CC 2017   -- 32\n5) Pr CC 2015.5 -- 31\n6) Pr CC 2015.2 -- 30\n\nq) for quit\n"

显示脚本可以转换的PR版本信息

def set_version(inputv,tree):
  global tgtv;
  global tgtvt;
  if inputv == '1':
    tgtv = "35" ;
    tgtvt = "v2018_1";
  elif inputv == '2':
    tgtv = "34" ;
    tgtvt= "v2018";
  elif inputv == '3':
    tgtv = "33" ;
    tgtvt= "v2017_1";
  elif inputv == '4':
    tgtv = "32" ;
    tgtvt= "v2017";
  elif inputv == '5':
    tgtv = "31" ;
    tgtvt= "v2015_5";
  elif inputv == '6':
    tgtv = "30" ;
    tgtvt= "v2015_2";

  num = 0;
  while not tree.findall("Project")[num].get("Version"):
    #找到版本存储位置
      num = num+1;
  else:
    tree.findall("Project")[num].set("Version",tgtv)
    #修改版本为所选值
  return tree

改写xml中的版本号

如果有什么不明白的欢迎留言

祝大家身体健康、工作顺利