windows批处理命令用于循环设置环境variables

我试图find一种方法来dynamic构build包含我的应用程序的WEB-INF / lib文件夹下的JAR文件列表的环境variables。

这是我迄今为止所做的,但是每次都会覆盖自己,所以当你到达循环的结尾时,你只需要将variables中的循环的最后一个文件设置在variables中。

SETLOCAL ENABLEDELAYEDEXPANSION for %%f IN (WEB-INF/lib/*.jar) DO ( SET JAR_LIST=%JAR_LIST%;%%f ) ECHO JAR_LIST -- %JAR_LIST% 

所以这产生…

C:\ apache \ Tomcat6.0 \ webapps \ myapp>(SET JAR_LIST = .; xsltcbrazil.jar)

C:\ apache \ Tomcat6.0 \ webapps \ myapp>(SET JAR_LIST = .; xsltcejb.jar)

C:\ apache \ Tomcat6.0 \ webapps \ myapp>(SET JAR_LIST = .; xsltcservlet.jar)

C:\ apache \ Tomcat6.0 \ webapps \ myapp> ECHO JAR_LIST – 。; xsltcservlet.jar

JAR_LIST – 。; xsltcservlet.jar

Solutions Collecting From Web of "windows批处理命令用于循环设置环境variables"

更改

 SET JAR_LIST=%JAR_LIST%;%%f 

 SET JAR_LIST=!JAR_LIST!;%%f 

这将使用运行时间值而不是加载时间值。 这样做可能会更好,以避免领先;

 SETLOCAL ENABLEDELAYEDEXPANSION SET "JAR_LIST=" for %%f IN (WEB-INF/lib/*.jar) DO ( if "!JAR_LIST!"=="" (SET JAR_LIST=%%f) ELSE (SET JAR_LIST=!JAR_LIST!;%%f) ) ECHO JAR_LIST -- %JAR_LIST%