增量打包DOC版

压缩zip的命令有的系统没有的自己去下载一个,否则关闭压缩zip的命令。

有需要的自行更改,这是满足我需求的。

执行 publish.bat 即可,当然需要将文件清单写好放在 resources.txt中。

@REM author:莫大人 date:20160118
@echo off
ECHO =================增量打包工具=================
ECHO 作者:莫大人  20160118
setlocal enabledelayedexpansion
@REM 工程编译目录 
@REM iTreasuryEJB  
SET PROJECT_HOME=E:installFile
tjboss-4.0.5.GAserverdefaultdeployear.eariTreasuryEJB.jar
@REM 
SET PROJECT_HOME_TMP=E:installFile
tjboss-4.0.5.GAserverdefaultdeployear.eariTreasuryEJB.jar

@REM iTreasuryWEB.warWEB-INF SET PROJECT_HOME=E:installFile
tjboss-4.0.5.GAserverdefaultdeployear.eariTreasuryWEB.warWEB-INF
@REM SET PROJECT_HOME_TMP=E:installFile
tjboss-4.0.5.GAserverdefaultdeployear.eariTreasuryWEB.warWEB-INF

@REM iTreasuryWEB.wariTreasury-settlement SET PROJECT_HOME=E:installFile
tjboss-4.0.5.GAserverdefaultdeployear.eariTreasuryWEB.wariTreasury-settlement
@REM SET PROJECT_HOME_TMP=E:installFile
tjboss-4.0.5.GAserverdefaultdeployear.eariTreasuryWEB.wariTreasury-settlement

echo 工程编译目录  %PROJECT_HOME%
@REM 资源文件
SET RESOURCE_FILE=resource.txt
echo 资源文件  %RESOURCE_FILE%
@REM 备份文件夹
SET BACKUP=BACKUP
@REM 是否压缩开关 1 开 0 关
SET ZIP_CMD=0
@REM 当前目录
SET CURRENT_DIR=%cd%
echo 当前目录  %CURRENT_DIR%
@REM 目标目录
SET TARGET_PATH=%CURRENT_DIR%\%BACKUP%
@REM 清除缓存
IF EXIST %TARGET_PATH% RMDIR /S /Q %TARGET_PATH%
IF EXIST %CURRENT_DIR%Project.zip DEL %CURRENT_DIR%Project.zip
@REM 判断是否存在资源文件,不存在创建一个并提示
IF NOT EXIST %CURRENT_DIR%\%RESOURCE_FILE% (@ECHO ###第一行不做处理 请将需要打包的文件目录拷到此处如  classescommideaaccountserviceAccountService.class>%RESOURCE_FILE%&&goto :eof)
IF NOT EXIST %TARGET_PATH% MKDIR %TARGET_PATH%
@REM 循环查询资源文件中的文件,存在则复制(保持目录结构),输出日志到 stdout.log
ECHO %date% ====================增量打包日志输出开始====================>>stdout.log
@REM CLASS 添加 WEB-INF 之后复制
@REM for /f "skip=1 tokens=1,* delims=:" %i in ('findstr /s /e "class" %RESOURCE_FILE%') do (call :copyFile WEB-INF%%j)
for /f "skip=1" %%i in (%RESOURCE_FILE%) do (call :copyFile %%i)
ECHO %date% ====================增量打包日志输出结束====================>>stdout.log
@REM 打包,如果增量文件为空那么不压缩
DIR /B %TARGET_PATH%|FINDSTR .*>nul&&(@ECHO 存在资源文件)||(@ECHO 不存在资源文件>>stdout.log&&goto :eof)
cd %TARGET_PATH%
mkdir WEB-INF
if exist classes move classes WEB-INF
IF %ZIP_CMD% EQU 1 (call :toZip)
ECHO =================增量打包结束=================
PAUSE
goto :eof


@REM 复制
:copyFile
@REM 源文件 
SET SRC_FILE=%PROJECT_HOME_TMP%%1%
@REM 目标文件
SET TARGET_FILE=%TARGET_PATH%%1%
@REM ECHO 假设源文件在%SRC_FILE%>>stdout.log
@REM 如果源文件为空那么不复制,并提示
IF "%SRC_FILE%"=="" (ECHO %SRC_FILE% 不存在,请将增量文件列表写入 %RESOURCE_FILE%>>stdout.log&&goto :eof)
@REM 判断源文件是否存在,不存在则记录 stdout.log
@REM 一定要使用ECHO OFF和ECHO ON,因为这两个可以让系统对期间的代码进行整块操作,还有就是需要主要,IF判断的括号一定要写在IF的这行中。
IF NOT EXIST %SRC_FILE% (
SET SRC_FILE=%PROJECT_HOME%%1%
SET TARGET_FILE=%TARGET_PATH%/WEB-INF/%1%
)
@REM ECHO 修正后的源文件为%SRC_FILE%>>stdout.log
IF NOT EXIST %SRC_FILE% (ECHO 找不到资源 %SRC_FILE% >>stdout.log&&goto :eof)

@REM 目标文件目录
for %%a in (%TARGET_FILE%) do SET TARGET_TEMP=%%~dpa
@REM 目标文件目录是否存在,不存在则创建
IF NOT EXIST %TARGET_TEMP% MKDIR %TARGET_TEMP%
@REM 复制文件开始
COPY /y %SRC_FILE% %TARGET_TEMP%
goto :eof

@REM 打包
:toZip
cd %TARGET_PATH%
zip -qr %CURRENT_DIR%Project.zip *
goto :eof
原文地址:https://www.cnblogs.com/yun965861480/p/6427960.html