开发中的一些常用工具
程序员文章站
2022-07-03 23:23:30
...
1.从命令行打开目录
2.SVN更新
3.ClearCase更新
4.部署的脚本
5.提取检查测试结果
这个要根据具体的情况进行修改,我只是随便写的,减轻劳动量。
6,EJB中工程编译,打包,部署
@explorer.exe %1%
保存为o.bat
eg:一般我只用下面两个
①o .
②o ..
2.SVN更新
@set src_path1=C:\AAA\BBB\CCC
@echo 更新中…
@TortoiseProc.exe /command:update /path:"%src_path1%" /closeonend:1
@echo 更新完成
另外更新SVN
@TortoiseProc.exe /command:commit /path:"%src_path%" /closeonend:0
3.ClearCase更新
@set projectPath=C:\AAAAAA
@cleartool update %projectPath%\ libs
@cleartool update %projectPath%\ utils
@rem 一些需要手动拷贝的地方
@xcopy %projectPath%\ libs\o /R /S /Y /D %projectPath%\libs\dest
@pause
4.部署的脚本
# coding: UTF-8
import os
C_7Z_EXE = '"C:\\Program Files\\7-Zip\\7z.exe"'
SERVER_DEPLOY_PATH = "\\\\192.168.1.111\\AAAA\\BBB\\build\\"
def main():
copyfile = raw_input("请输入要部署的文件名:")
print u"开始拷贝。。。"
print SERVER_DEPLOY_PATH + copyfile
# 将部署文件拷贝到自己临时目录
os.system("@XCOPY " + SERVER_DEPLOY_PATH + copyfile + " /R /Y /D " + "C:\\env")
print u"拷贝结束"
# 解压缩拷贝过来的文件
os.chdir("C:\\env")
a_7z_cmd = C_7Z_EXE + ' x ' + copyfile + ' -o' + "C:\\env" + '\\'
os.system("@" + a_7z_cmd)
print u"\n 解压缩完成"
# 将自己解压缩出来的文件拷贝到部署目录
os.system("@XCOPY " + "C:\\env\\" + copyfile[:-4] +"\\DPS\\cuidef" + " /R /Y /D " + "C:\\DPS\\cuidef")
os.system("@XCOPY " + "C:\\env\\" + copyfile[:-4] +"\\DPS\\lib" + " /R /Y /D " + "C:\\DPS\\lib")
os.system("@XCOPY " + "C:\\env\\" + copyfile[:-4] +"\\DPS\\extdef" + " /R /Y /D " + "C:\\DPS\\extdef")
print u"拷贝结束"
os.chdir("C:\\env\\" + copyfile[:-4] + "\\DPS\\ear")
unzipEAR("C:\\env\\" + copyfile[:-4] + "\\DPS\\ear")
def unzipEAR(path):
# 还有一些其他的部署,但是基本思路和上面是一致的
if __name__ == "__main__":
main()
5.提取检查测试结果
这个要根据具体的情况进行修改,我只是随便写的,减轻劳动量。
# coding: UTF-8
import sys
import os
import time
import keyword, token, tokenize
workpath = "\\\\192.168.1.111\\AAAAAAAAAAAAAAAAAAAA"
temppath = "C:\\functiontestlog"
exepath = os.getcwd()
def main():
copyfile = raw_input("需要从服务器中拷贝日志文件吗?(Y/N)")
if copyfile == "Y" or copyfile == "y":
print "开始拷贝"
os.system('RD /s /q ' + temppath)
os.mkdir(temppath)
os.mkdir(temppath + '\\temp')
copyLog(0, workpath)
print "拷贝结束"
time.sleep(1)
checkng = raw_input("检查测试结果不正确的文件?(Y/N)")
if checkng == "Y" or checkng == "y":
#开始记录
print "开始查找"
epochValue = time.time()
timeString = time.ctime(epochValue)
mylogFile = open(temppath + "\\_result.html", "w")
os.chdir(exepath)
mytcfIdfile = open('tcfidlist.txt')
#遍历查找文件中存在NG的文件,并且把文件名纪录下来
#没有必要细看
for tcfid in mytcfIdfile.readlines():
tcfid = tcfid.replace("\n", "")
tcfLog = searchfile(0, temppath, tcfid)
if None != tcfLog:
currentLogFile = open(tcfLog)
logContent = currentLogFile.read()
if logContent.find("》@COMPAREM\nNG") != -1:
logContent.replace("\n", "<br>\n");
print tcfLog[:-4]
mylogFile.write('<font color=red>NG case:</font>' + "<a href=" + tcfLog[:-4] + ".html" + " target=_top >" + tcfLog[:-5] + "</a><br>" + '\n')
currentLogFile.close()
else:
#找不到测试结果的情况下
mylogFile.write("No Log:" + tcfid + '<br>\n')
mytcfIdfile.close()
mylogFile.close()
rename(temppath,".LOG",".html")
print "查找结束"
os.system('start file://C:\\functiontestlog\\_result.html')
sys.exit()
#文件重命名
def rename(path,old_ext,new_ext):
for (path, dirs, files) in os.walk(path):
for filename in files:
ext=os.path.splitext(filename)[1]
if (cmp(ext,old_ext)==0):
newname=filename.replace(old_ext,new_ext)
oldpath=path+"\\"+filename
newpath=path+"\\"+newname
try:
os.rename(oldpath, newpath)
except ValueError:
print "Error when rename the file " + oldpath
except NameError:
print "Error when rename the file " + oldpath
except OSError:
print newpath + " The file is already exist!"
#按照一定的规则进行拷贝文件,
def copyLog(level, path):
for i in os.listdir(path):
currentPath = path + '\\' + i
if os.path.isdir(path + '\\' + i):
copyLog(level + 1, path + '\\' + i)
elif os.path.isfile(path + '\\' + i):
if currentPath.find('TESTRESULT_') != -1:
os.system("@XCOPY " + currentPath + " /R /Y /D " + temppath + '\\temp')
os.chdir(temppath + '\\temp')
try:
print u'' + currentPath[-47:], u'' + currentPath[-39:]
os.rename(u'' + currentPath[-47:], u'' + currentPath[-39:])
os.system("@XCOPY " + currentPath[-39:] + " /R /Y /D " + temppath)
os.system("del " + temppath + '\\temp\\' + currentPath[-39:])
except:
try:
print u'' + currentPath[-50:], u'' + currentPath[-42:]
os.rename(u'' + currentPath[-50:], u'' + currentPath[-42:])
os.system("@XCOPY " + currentPath[-42:] + " /R /Y /D " + temppath)
os.system("del " + temppath + '\\temp\\' + currentPath[-42:])
except:
print u'' + currentPath[-49:]
print u'' + currentPath[-41:]
os.rename(u'' + currentPath[-49:], u'' + currentPath[-41:])
os.system("@XCOPY " + currentPath[-41:] + " /R /Y /D " + temppath)
os.system("del " + temppath + '\\temp\\' + currentPath[-41:])
def searchfile(level, path, tcfid):
for i in os.listdir(path):
currentPath = path + '\\' + i
tcfid = tcfid.replace("\n", "")
# 文件名符合当前要求?
index = currentPath.find(tcfid)
if index != -1:
return currentPath
if __name__ == "__main__":
sys.exit(main())
6,EJB中工程编译,打包,部署
set path=%path%;C: \apache-ant-1.7.0\bin
set path=%path%;C:\Oracle\Middleware\jdk160_18\bin
set module_name=%1%
@rem 指定Source目录
set base_path=C:\AAAAAA\dps.%module_name%
@rem 工作的jar包目录
set org_path_jar=C:\ AAAAA\ libs\dest\
@rem EJB部署目录
set dest_path_jar=C:\FuncTest\dpsall\
cd %base_path%
@rem 调用ant脚本,编译,打包
cmd /c ant compilel pack.jar
@rem 将jar文件拷贝到部署目录
xcopy %org_path_jar%dps.%module_name%.jar %dest_path_jar% /y
startweblogic