2010-03-16 39 views
0

我想要使用我的lib文件夹下包含的所有*.jar文件自动生成类路径。批处理:使用其绝对路径列出所有子文件

我无法找到一种方法来列出所有这些文件的绝对路径,以便我可以构建我的classpath变量。

看起来dir命令不允许获得绝对路径,即使当您递归使用/s时也是如此。

基本上我脑子里想的是一样的东西:

set classpath = ./conf 
for %%i in (`dir /s /withaboslutepath *.jar`) do set classpath = %classpath%;"%%x" 

有没有办法来实现这一目标?

+0

写一个这样做的程序?你的例子添加每个发现的jar的路径.. – lexu 2010-03-16 08:58:12

+0

Err nope,它没有。完全一样。 – glmxndr 2010-03-16 09:07:12

回答

1

我已经创建了这样的事情:

setlocal EnableDelayedExpansion 
set classpath=./conf 
FOR /R . %%x IN (*.jar) do set classpath=!classpath!;"%%~px" 
echo !classpath! 
endlocal 

这个解决方案的问题是重复的路径。

+0

重复是什么意思?它似乎工作正常。 – glmxndr 2010-03-16 09:30:56

+0

如果你在同一个目录下有两个jar文件,这个目录将被添加两次到classpath变量。 – chalup 2010-03-16 09:37:03

+0

哦,是的...实际上我需要自己指定jar文件,所以我用%% x替换了%%〜px。非常感谢 ! – glmxndr 2010-03-16 09:40:38