自动化小工具(1):Python 自动编译 VS - devenv命令行

经常会编译很多case,不断地调整参数。
这些参数可以通过文件读写完成,但是有时候添加读写也不一定是最好的。
这里介绍另外一种笨办法:

  1. 通过python修改源文件
  2. 调用VS的命令行编译
  3. 创建不同的case目录
  4. 移动编译的文件到指定的case目录下

1. 替换文件中的某一行

def LineReplace(file,line_num,replace_str):
    tmp = -1
    data = ""
    f = open(file,"r")
    for line in f.readlines():
        tmp += 1
        if (tmp == line_num):
            line = replace_str
        data += line
    f.close()

    f = open(file,"w")
    f.writelines(data)
    f.close()

2.系统命令的执行

使用python 的os.system来执行系统命令

import os
print (os.system('ping www.baidu.com'))

系统会自动启动cmd窗口

3.创建不同的case目录

不同的case一般是有规律可循的,所以只要针对不同的case命名不同即可,然后通过os.mkdir命令即可生成目录。

def MakeDirectory(filepath):
    for i in range(0,len(filepath)):
        os.mkdir(filepath[i])

4.移动编译的文件到指定的case目录下

VS是支持命令行编译工程文件的,使用devenv命令即可。
关于devenv命令见下

os.system('devenv "HelloWorld.sln" /rebuild')
os.system("".join(["xcopy ","D:\\2018\\main.exe", " ", folder]))

Devenv command line switch

  • 命令行参数以devenv开始。
  • 参数不分大小写。
  • 当指定一个工程或者方案时,第一个参数是工程文件或者方案文件(包括工程路径),注意方案可以是多个工程的集合。
  • 如果第一个参数是一个文件,而非工程或者方案,那么这个文件会打开一个新的IDE。
  • 如果第一个参数是工程文件,devenv会搜索父目录,寻找相同名字的方案文件。例如,如果使用命令devenv /build myproject1.vbproj,那么会搜索父文件夹寻找myproject1.sln
  • 如果文件名或者文件夹含有空格,必须使用引号(quotation marks),比如 “c:\project a\”
  • switch 和参数之间需要空格,例如: devenv /log output.txt(/log 是switch,output.txt是argument参数)。

这里写图片描述


https://docs.microsoft.com/en-us/visualstudio/ide/reference/devenv-command-line-switches

猜你喜欢

转载自blog.csdn.net/milkbusy/article/details/81559244