2010-03-16 41 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