思路:现在部门服务器上由hudson统一打成完整包,包括:saomiao、yyrq、gjjweb.war。放到D:\build_increment\compile下
涉及的批处理知识点如下:
知识点一:替换文件中的特殊字符
法一:通过dos函数处理文件my1.txt中的字符aaa,把他们替换成bbb,示例代码如下:
@echo off
call :replace my.txt aaa bbb >>my1.txt
goto :eof
:replace
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1* delims=" %%i in (%1) do set var=%%i & echo !var:%2=%3!
endlocal
goto :eof
法二:通过for、if处理文件list1.txt,把里边的账户监管替换成gjjweb、新模型扫描替换成saomiao、应用容器替换成yyrq。结果输出到文件list2.txt中,代码示例如下:
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1* delims=:" %%a in ('findstr /n ".*" list1.txt') do (
set str=%%b
if "!str!" neq "" (
set str=!str:账户监管=gjjweb!
)
if "!str!" neq "" (
set str=!str:新模型扫描=saomiao!
)
if "!str!" neq "" (
set str=!str:应用容器=yyrq!
)
echo,!str!
))>list2.txt
知识点二:删除文件中含特殊字符的行
通过“findstr“命令解决,把list2.txt包含:以“gjjweb”开头以“java”结尾、以“gjjweb”开头以“as”结尾、以“gjjweb”开头以“mxml”结尾的行删除。并把处理结果输出到文件list3.txt中。代码示例如下:
@echo off&setlocal
(for /f "delims=" %%i in ('findstr /r /i /v "^gjjweb.*java$ ^gjjweb.*as$ ^gjjweb.*mxml{1}quot; list2.txt') do echo %%i)>list3.txt
pause
知识点三:文件拷贝和目录拷贝
把compile目录下的文件gjjweb.war 拷贝到compile\gjjweb\下,代码示例如下:
copy /Y compile\gjjweb.war compile\gjjweb\gjjweb.war
把e:\gjj_rls_version\02.应用安装\yyrq\bin下的文件拷到e:\AppContainer\apache-tomcat-6.0.32\webapps\appServices\example\services
xcopy e:\gjj_rls_version\02.应用安装\yyrq\bin e:\AppContainer\apache-tomcat-6.0.32\webapps\appServices\example\services /S
知识点三:合并文件
方法一:copy 格式:COPY 文件名+文件名 新文件名
方法二:type 格式:type a.txt > new.txt
type b.txt > > new.txt 可以把 a.txt和b.txt 合并,
项目示例代码如下:
rem 合并list4.txt到list3.txt中
type list4.txt >> list3.txt