一个关于bat脚本的问题

请教一个问题:
我又一个文件夹叫做datamanager,这个文件夹下有一个lib文件,lib文件里面有很多很多的jar,我需要写一个for循环,来加载所有jar,当我的脚本如下时,ok没有问题:
set CLASSPATH=./classes

for %%i in ("lib/*.jar") do call :LIBAPPEND %%i

@echo ================================================
@echo %CLASSPATH%
@echo ************************************************

:LIBAPPEND
set CLASSPATH=%CLASSPATH%;%1

可是,当我写成这样的时候
set CLASSPATH=./classes

for %%i in ("lib/*.jar") do (
set CLASSPATH=%CLASSPATH%;%%i
)

@echo ================================================
@echo %CLASSPATH%
@echo ************************************************

死活只能输出最后一个jar包了。

实在不明白两种方式有什么区别,请教为什么??

是不是多了一个%,试试下面:

 for %%i in ("lib/*.jar") do (set CLASSPATH=%CLASSPATH%;%i)