经常会编译很多case,不断地调整参数。
这些参数可以通过文件读写完成,但是有时候添加读写也不一定是最好的。
这里介绍另外一种笨办法:
- 通过python修改源文件
- 调用VS的命令行编译
- 创建不同的case目录
- 移动编译的文件到指定的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