您的位置:首页 > 其它

快速整理发布文件的一个bat文件

2013-04-22 15:17 232 查看
在实际开发中,尤其是维护式开发,经常是接到一个需求,然后我们要么修改之前的文件,要么新增文件。如果涉及到的文件很多,在发布的时候还要一个一个文件找到通过FTP上传文件服务器,就很费时间。看到同事们搞了一个bat文件,只要把要发布的文件列好清单放到一个txt文件中,就很容易生成啦!现在就分享一下同事们写的那个bat文件,希望大家能提出意见:

@echo off

set source=filelist.txt

set input=E:\project\workspace\projectName\WebRoot
set output=E:\project\workspace\deployed
set dirname=%date:~0,4%-%date:~5,2%-%date:~8,2%

if not exist %output%\%dirname% mkdir %output%\%dirname%
if exist %output%\%dirname%\copy.log del /q %output%\%dirname%\copy.log

for /f %%a in (%source%) do (
echo f|xcopy /y /f %input%\%%a %output%\%dirname%\%%a>>%output%\%dirname%\copy.log
)
xcopy /y /f %source% %output%\%dirname%\>>%output%\%dirname%\copy.log
echo 文件已复制到%output%\%dirname%
pause


其中

input是项目所在的本地路径,一般对个bat文件我们项目是用来发布.class文件的所以input的路径写到WebRoot;

output是生成的文件夹所在的本地路径,即要发布的文件,其他的就不用太关注啦,全部复制,然后文件起名为copyfiles.bat

具体操作是:

在本地任意一个路径下,放入copyfiles.bat和filelist.txt文件,其中filelist.txt文件中分别列出要整理的.class文件,注意路径是相对于input的相对路径,即要从E:\project\workspace\projectName\WebRoot下找class文件,应该是

WEB-INF\classes\com\xx\xx\service\newhyx\xxxx\Exxxxxxx.class这种格式的!

然后,双击运行copyfiles.bat文件就会在output路径下生成一个以年月日命名的文件!

----------------------------------------------------------

我们测试环境是用jar包的形式发布文件的,上面bat文件生成好要发布的文件,在E:\project\workspace\deployed\xxxx-xx-xx下找到对应的WEB-INF文件夹,然后再ftp上找到

/xxxx/xxx_war.ear/xxx.war/WEB-INF/lib/xxxxxx.jar(我们ftp的路径),下载到本地,再用winRAR打开,将刚才的WEB-INF\classes下的com包拖到其中,覆盖掉旧的。。。

此外,对其他类型的文件,如.jsp、.xml等等文件,我们直接是通过ftp上传的,这个可能不同项目组处理的方式不同吧。

==================================

当然还有其他方式整理文件,如

首先创建一个1.bat

@echo off

set input=%3
set output=%4

set subdir=%1

set dirname1=%2\%subdir:~0,5%
echo 开始复制清单%1
if not exist %output%\%dirname1% mkdir %output%\%dirname1%
for /f %%a in (%1) do (
echo f|xcopy /y /f %input%\%%a %output%\%dirname1%\%%a>>%output%\%2\copy.log
echo %input%\%%a
)
echo 清单%1复制完成

然后再创建一个copysrcfiles.bat

@echo off

set input=E:\project\workspace
set output=D:\tool\COPY_QC
set dirname=%date:~0,4%-%date:~5,2%-%date:~8,2%

if exist %output%\%dirname%\copy.log del /q %output%\%dirname%\copy.log

dir /b *.txt>list
for /f %%b in (list) do (
call 1.bat %%b %dirname% %input% %output%
)
echo 文件已复制到%output%\%dirname%
pause

这种情况,可以对所有.txt文件都进行扫描,遇到txt文件中有具体以形容下面的内容就会生成相应的文件夹和文件

xx\src\com\cpic\ryx\web\insurance\SelectProductsAction.java

xx\WebRoot\insurance\addEpolicyApply.jsp

xx\WebRoot\config\product\zhusulvke.xml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐