bat运行java程序——jar包的引入

set baseDir=%cd%
setlocal EnableDelayedExpansion		//变量延迟

for /R %baseDir%\lib %%i in (*.jar) do (
	SET CLASSPATH=!CLASSPATH!;%%i
)

SET CLASSPATH=%CLASSPATH%;%baseDir%/lib;%baseDir%/classes12_9i.zip; //特殊的另加

java -Xmx256m -Xms128m -DbaseDir=%baseDir% AppServer

@pause

for语句:

	FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令
	参数:FOR有4个参数 /d   /l   /r   /f 比较常用的是/f参数
	rem 输出两行,分别为两个单词Hello和World
	for %a in (Hello,World) do echo %a
	rem 输出1到10
	for /l %a in (1,1,10) do echo %a
	rem 列举d盘所有txt文件
	for /r d: %a in (*.txt) do echo %a
	rem 显示系统版本
	for /f "tokens=3" %a in ('ver') do echo %a 
	rem 列举当前目录下的子目录
	for /d %a in (*) do echo %a


变量延迟:

例1: 

复制代码代码如下:

@echo off 
set a=4 
set a=5&echo %a% 
pause 

结果:4 
解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?让我们先了解一下批处理运行命令的机制:批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量赋值。我们现在分析一下例1,批处理在运行到这句“set a=5&echo %a%”之前,先把这一句整句读取并做了预处理——对变量a赋了值,那么%a%当然就是4了!

你可能感兴趣的:(bat运行java程序——jar包的引入)