没有镇楼的神兽我会不安的...
另外,我不会告诉你其实我是一个帅哥的...
前言:我们项目组现在发布项目都需要手动ant打包,然后在项目目录下复制要部署的程序包到项目发版工具目录下。因为我们有多个项目,要根据项目区分部部署,我比较懒,不想频繁切换目录,也不想频繁的ctrl c & ctrl v,因此今天上午自己写了一个批处理文件,基本能实现一键copy+部署。现总结一下我用到的和顺带了解的批处理命令...
命令--------解释
命令/?:查看命令帮助
del 文件路径 : 删除文件
move 文件 路径:移动文件到指定的路径下(文件和路径中间有空格哈,下边俩一样)
copy文件 路径:复制文件到指定的路径下
rd 文件夹路径: 删除文件夹
tree 文件夹路径: 查看文件夹结构
echo 确认的按钮|命令:一键执行确认操作命令
tasklist >list.txt :将所有进程保存到list文件中(默认保存到当前目录)
find /i "chrome.exe" list.txt :从list文件中查找chrome进程
@echo off :关闭回显
@echo on :开启回显
set 变量名=变量值:声明变量
%变量名% :调用变量
不同bat文件之间传值(最后面代码中会有实例):
//调用bat
xx.bat 参数:调用bat文件后面加空格然后跟上要传的参数,最后可传9个,每个参数之间用空格分隔
//另一个bat文件接收参数
%1--%9:%1到%9一共9个参数,分别依次对应
:: xxx:注释内容,不会显示到窗口
rem xx:注释内容,会显示到窗口
echo xx:注释内容,会显示到窗口
*winrar x iEnergy_ams.zip iEnergy_ams* :解压命令(需要把winrar安装路径下的winrar.exe放到c盘windows目录下)
winrar a -r iEnergy_ams.zip :压缩命令
至于压缩和解压缩,在winrar安装目录下的Rar.txt里有很详细的命令解释。另外,图中红色箭头指向的两个也是压缩和解压文件的工具,把他俩放到windows目录下同样可以通过rar、unrar执行压缩和解压操作,但是这两个和winrar的区别就在于:rar、unrar只能操作rar后缀的压缩文件,虽然通过rar也可以打成zip包,但事实上还是以rar格式为基础的,可以通过与zip包比较文件大小确定。
最后,贴一个我刚写的批处理文件:
主bat(负责定义公共变量和代码):
@echo off
:: 公共参数设置 start
cd %cd%
:: 跳转到上级目录
cd ../
:: 自动发版工具所在地址
set autoDeployPath=%cd%
::-------------------------该地址需要手动修改为本机项目打包后的地址-------------------------
::本机项目打包后的地址
set sourcePath=xxx\upload
::本机项目所在磁盘
set sourceDisk=D:
::-------------------------该地址需要手动修改为本机项目打包后的地址-------------------------
:: 公共参数设置 end
:: uat项目部署所在地址
set uatPath=%autoDeployPath%\resource\uat
set livePath=%autoDeployPath%\resource\live
set otePath=%autoDeployPath%\resource\ote
:: 公共参数设置 end
:: 先删除旧的项目包 live、uat、ote全部清空
echo ----清空uat文件夹----
echo y|del %uatPath%\*.*
echo ----清空live文件夹----
echo y|del %livePath%\*.*
echo ----清空ote文件夹----
echo y|del %otePath%\*.*
::清屏操作
cls
echo 文件部署工具根目录:%autoDeployPath%
cd %autoDeployPath%\bat-test
goto start
:start
echo --------------------------------------------------
echo -- uat部署 --
echo -- 1.www --
echo -- 2.admin --
echo -- 3.static --
echo -- 4.all(该选项操作完成后会自动部署) --
echo -- 5.deploy(需要先执行1或者2或者3) --
echo -- 6.END --
echo --------------------------------------------------
ECHO.
echo (请输入数字选择操作命令)
set /p ans=
if %ans%==1 goto www
if %ans%==2 goto admin
if %ans%==3 goto static
if %ans%==4 goto all
if %ans%==5 goto deploy
if %ans%==6 goto END
:www
ECHO.
echo ----执行www项目解压操作----
:: 执行的逻辑命令--为bat文件传参
start wwww.bat %uatPath% %sourcePath% %sourceDisk%
echo ----www项目解压操作完成----
goto start
:admin
ECHO.
echo ----执行admin项目解压操作----
:: 执行的逻辑命令--为bat文件传参
start admin.bat %uatPath% %sourcePath% %sourceDisk%
echo ----admin项目解压操作完成----
goto start
:static
ECHO.
echo ----执行static项目解压操作----
:: 执行的逻辑命令--为bat文件传参
start static.bat %uatPath% %sourcePath% %sourceDisk%
echo ----static项目解压操作完成----
goto start
:all
ECHO.
echo ----www、admin、static项目解压操作----
:: 执行的逻辑命令--为bat文件传参
start all.bat %uatPath% %sourcePath% %sourceDisk% %autoDeployPath%
echo ----项目解压操作完成----
exit
:deploy
ECHO.
echo ----执行部署任务----
:: 执行的逻辑命令--为bat文件传参
start deploy.bat %autoDeployPath%
echo ----部署完成----
goto END
:END
ECHO.
echo 退出批处理操作
pause
子文件(负责处理单个项目):
@echo off
:: 项目部署所在地址
set sysPath=%1
:: 项目打包后的地址
set sourcePath=%2
::本机项目所在磁盘
set sourceDisk=%3
:: 解压的路径
set unRarSourcePath=%sourcePath%\xxx
:: 进入项目zip所在的盘符根路径D盘
%sourceDisk%
:: 进入项目zip所在的文件夹
cd %sourcePath%
:: 复制文件到部署项目文件夹中
::copy xxx.zip %sysPath%
:: 解压文件 winrar命令要比单纯的rar或者unrar命令高级的多
winrar x xxx.zip * xxx\
:: 进入解压后字体所在文件夹
cd %unRarSourcePath%\WEB-INF\classes\resource\fonts
:: 删除文件夹下的所有文件
echo y|del *.*
:: 返回classes目录
cd %unRarSourcePath%\WEB-INF\classes
:: 删除resource文件夹
rd/s/q resource
:: 进入解压后的项目文件夹
cd %unRarSourcePath%
:: 将该文件夹下的所有内容从新打包 rar的压缩命令即使压缩为.zip但事实上还是以rar格式为基础的,可以通过比较文件大小确定
:: rar a -r xxx.zip *
winrar a -r xxx.zip *
:: 移动文件到部署项目文件夹中
move xxx.zip %sysPath%
cd %sourcePath%
:: 删除原解压的文件夹
rd/s/q xxx
exit
自认为代码写的还算干净...
我可以对一个人无限的好,前提是值得。 ——慕冬雪
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123