总结几个Java中常用的批处理命令如下:
一.setlocal
作用:Windows NT系统下的命令,执行此操作后对于环境变量的改变只限于该批处理文件中,执行endlocal命令后就会恢复成setlocal之前的环境变量。在批处理文件结束时,对每一个未结束的setlocal命令都会默认执行一次endlocal。常用方式:在设置环境的批处理头部加入: if "%OS%" == "Windows_NT" setlocal这样批处理执行完,环境就恢复为执行前的环境
二.for
作用:循环,批处理中有强大的作用,Java程序主要是通过for来设置classpath。常用方式:直接执行for %i in (*.jar) do call set CLASSPATH=%CLASSPATH%;%i 将当前路径下jar后缀的都加入CLASSPATH批处理中执行for %%i in (*.jar) do call set CLASSPATH=%CLASSPATH%;%%i 将当前路径下jar后缀的都加入CLASSPATH,批处理中变量的定义要用%%开头定义注:在Window XP下试了,如果执行前CLASSPATH为空,则循环下来CLASSPATH会变成%CLASSPATH%;1.jar;2.jar这种形式;如果不直接循环set,而执行for %%i in (*.jar) do call cpappend.bat %%i(cpappend.bat中为 set CLASSPATH=%CLASSPATH%;%1),则设置结果为1.jar;2.jar这种形式。
三.shift
作用:更改批处理文件中可替换参数的位置,如果不加参数,则将第二个参数替代第一个参数,第三个代替第二个,以次类推。常用方式:如Apache Tomcat中的cpappend.batif ""%1"" == """" goto end
set CLASSPATH=%CLASSPATH%;%1
shiftrem Process the remaining arguments
:setArgs
if ""%1"" == """" goto doneSetArgs
set CLASSPATH=%CLASSPATH% %1
shift
goto setArgs
:doneSetArgs
:end可以通过更替参数的方式来使用一种固定的循环方式将参数一个一个的加入classpath(用处相对较少)
其他的批处理命令,如流程控制等等,因为是批处理的基础,就不一一列出来的。可以参照一些开源项目的批处理文件,注释都比较丰富,静下心来好好看看就能理解(BTW,想起我半年前利用Tomcat的cpappend.bat文件设置类路径,也曾想理解里面的含义,可是那时太浮躁,始终未能静下心来。半年后的今天,好好看了十分钟不到,就有一种恍然大悟的感觉,真是有些感叹。)