我需要使用特定目录中的所有jar设置我的类路径。 Bash做如下:
CP_DELIMITER=;
for j in "$MY_HOME/javalib/*.jar"; do
if [ "$CP" ]; then
CP="$CP$CP_DELIMITER$j"
else
CP="$j"
fi
done
但是“for
”在DOS中的工作方式不同,基本上将命令发送到shell,但不会保留变量上的“set”
set CP=./
for %%j in (%MY_HOME%\javalib\*.jar) do (
set $CP=%CP%;"%%j"
)
当你在for之外要求$CP
时,你只能得到最后一个jar文件。如果你在里面回声,你可以看到%%j
确实拥有所有值。
有没有人找到解决方案?
答案 0 :(得分:2)
您需要使用CMD.EXE /V
启用延迟环境变量扩展并使用!VAR!
:
set CP=./
for %%j in (%MY_HOME%\javalib*.jar) do ( set CP=!CP!;"%%j" )