在Java项目中不同版本的Source要进行编译,每个开发成员的工作目录又不一样。编译的时候会比较的麻烦。
可不可以用一个BAT放到该工程中,任意移动工程,然后都可以进行点击编译?当然有啦。下面举个例子:
工程的目录结构一致,存放目录有区别的时候,就可以用下面的方法。
cd /d %~dp0Strutsbuild
ant –f build.xml _all
在批处理开头加入[cd /d %~dp0]就可以做到“工程随意移动,点击即编译运行”。
说明:
%0是批处理文件本身的路径,%~dp进行扩展, d向前扩展到驱动器,p往后扩展到路径。
例如:你的bat文件在c:/bat/test.bat,则%0就是c:/bat/test.bat, %~dp0是c:/bat/。
以上是我在实际项目中碰到的问题,在此过程中整理了一下BAT的的扩展功能。
下面是批处理自身 %0 的常用方法,经常要对自身进行操作,如取盘符,路径,文件名,后缀名,大小等
在碰到问题时可以利用%0的扩展功能,进行单独或组合方法来实现。下面有图为证不会有错,也便于理解。
下面是Bat的代码:
@echo off&title 获取批处理文件的自身信息 by XuLiYao&mode con: cols=60 lines=40&color 3e
echo /////////////////////
echo #示例说明:
echo 获取批处理文件的自身信息
echo /////////////////////
echo.
echo 当前执行目录是:%cd%
echo ————–该处理操作开始————–
echo ^/1:[%%~s0]获取批处理文件自身的缩写全路径名:
echo %~s0
echo.
echo ^/2:[%%0]获取批处理文件自身的完整路径(有引号可防止空格路径):
echo %0
echo.
echo ^/3:[%%~0]获取批处理文件自身的完整路径,并去掉首尾的引号:
echo %~0
echo.
echo ^/4:[%%~nx0]获取批处理文件自身的文件名及后缀名:
echo %~nx0
echo.
echo ^/5:[%%~n0]获取批处理文件自身的文件名:
echo %~n0
echo.
echo ^/6:[%%~x0]获取批处理文件自身的后缀名:
echo %~x0
echo.
echo ^/7:[%%~dp0]获取批处理文件自身的完整路径,不含文件名:
echo %~dp0
echo.
echo ^/8:[%%~d0]获取批处理文件自身的盘符:
echo %~d0
echo.
echo ^/9:[%%~z0]获取批处理文件自身的大小(byte):
echo %~z0
echo.
echo ^/10:[%%~t0]获取批处理文件自身的修改时间:
echo %~t0
echo.
PAUSE