windows下自动打包编译重启服务脚本

@echo off
title XXX自动发布脚本
echo "XXX自动发布脚本"
@echo 开始更新项目
call "D:\SVN\VisualSVN Server\bin\svn.exe" update "D:\TJBIServer\TJBIService"
echo 更新完成......
@echo 开始编译打包项目
call ant -f d:\TJBIServer\TJBIService\build.xml
echo 打包完成......

@echo 开始部署war包
call "d:\apache-tomcat-6.0.41\bin\shutdown.bat"
ping -n 5 127.0.0.1 > null
del D:\apache-tomcat-6.0.41\webapps\TJBIServer.war
rmdir /s/q D:\apache-tomcat-6.0.41\webapps\TJBIServer
copy D:\TJBIServer\TJBIService\TJBIServer.war D:\apache-tomcat-6.0.41\webapps
echo 部署完成......

@echo 开始重启服务
call "d:\apache-tomcat-6.0.41\bin\startup.bat"
echo 重启完成......

遇到问题:在目录下直接执行ant编译(ant  build.xml),不用call调用,会出现bat脚本不能继续往下执行。

解决办法:http://xuliangyong.iteye.com/blog/371692

使用ant来做每日构建有写日子了
今天想在每日构建脚本中加入重启tomcat的操作 问题来了
先看脚本
Java代码 复制代码  收藏代码
  1. @echo  stop tomcat...   
  2. call "D:\Program Files\apache-tomcat-6.0.18\bin\shutdown.bat"  
  3.   
  4. ant -f D:\dailybuild\build.xml war   
  5.   
  6. @echo  start tomcat...   
  7. call "D:\Program Files\apache-tomcat-6.0.18\bin\startup.bat"  
@echo stop tomcat...
call "D:\Program Files\apache-tomcat-6.0.18\bin\shutdown.bat"

ant -f D:\dailybuild\build.xml war

@echo start tomcat...
call "D:\Program Files\apache-tomcat-6.0.18\bin\startup.bat"

shutdown.bat是可以执行的
接下来的ant也是可以执行的
但是再下来的startup.bat就不能执行了
就是说调用完ant build.xml文件后没有返回

百思不得其解 放狗搜去

无意中看到这么一句
引用
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。

摘自: http://shyboy.bloghome.cn/posts/32153.html

虽然build.xml不是bat文件 但同为外部脚本,用call试试
果然 管用了
Java代码 复制代码  收藏代码
  1. call ant -f D:\dailybuild\build.xml war  
call ant -f D:\dailybuild\build.xml war

执行完后成功执行了startup.bat

引用
原来如此 call并不仅仅用来调用bat,而且可以调用所有的其他脚本


你可能感兴趣的:(windows下自动打包编译重启服务脚本)