公司做java项目的二次开发,多个公司在维护同一项目,且不能直接编译一个war、ear包进行部署,经常要提取增量补丁文件。5、6个程序猿每人改10多个文件,将是5、60个文件,把文件的路径列表整理好,就把所有的文件提取到同一文件夹,这个是头疼的问题,上补丁的人得把所以的文件按照文件列表一个一个放服务器!60个文件,搞错一个都有可能导致程序跑不起来。
索性写了个批处理,问题迎刃而解。
rem @echo off 关闭回显
rem set "src=F:\SRC\WebContent\" 项目编译后的路径
rem set "dst=%cd%\%date:~0,4%%date:~5,2%%date:~8,2%\" 保存到当前目录以日期格式生成目录
rem 用 xcopy 命令循环拷贝文件并把拷贝的记录写入xcopy.log文件
rem 按任意键退出
@echo off
set "src=F:\RMA_SRC\WebContent\"
set "dst=%cd%\%date:~0,4%%date:~5,2%%date:~8,2%\"
for /f %%i in (file.txt) do xcopy "%src%%%i" "%dst%%%i" /s/y/i/e/f >>xcopy.log
pause & exit
把上面代码保存为bat文件,在目录下创建一个file.txt文件,要提取的文件列表。也可以是一个目录、或者是单个文件.
WEB-INF\jsp\wap\wx\faq.jsp
WEB-INF\jsp\wap\wx\header\style.jsp
WEB-INF\jsp\wap\wx\cascade\productCascade.jsp
WEB-INF\jsp\wap\wx\cascade\addressCascade.jsp
WEB-INF\jsp\wap\wx\support.jsp
js\wx\cascade.js
js\wx\address-static.js
js\wx\product-static.js
WEB-INF\classes\com\music\mvc\wap\wx\WapC.class
在打开批处理是需要按键盘上的F键,按住、或者一直按,直到文件提取结束。解释如下:
Does destination specify a file name or directory name on the target
(F = file, D = directory)?
如果要将一个或多个文件复制到一个文件,请按 F。如果要将一个或多个文件复制到一个目录,请按 D。