J'ai besoin de définir mon chemin de classe en utilisant tous les jars dans un répertoire particulier. Bash il le fait comme suit:Comment préserver les variables dans les scripts de traitement par lots dans les boucles "for"?
CP_DELIMITER=;
for j in "$MY_HOME/javalib/*.jar"; do
if [ "$CP" ]; then
CP="$CP$CP_DELIMITER$j"
else
CP="$j"
fi
done
Mais « for
» fonctionne différemment dans le DOS, et envoie essentiellement la commande à la coquille, mais ne conservera pas le « set » sur la variable
set CP=./
for %%j in (%MY_HOME%\javalib\*.jar) do (
set $CP=%CP%;"%%j"
)
Lorsque vous demandez $CP
en dehors du pour, vous obtenez seulement le dernier fichier jar. Si vous faites écho à l'intérieur, vous pouvez voir que %%j
a toutes les valeurs.
Est-ce que quelqu'un a trouvé une solution?
Grande, qui fonctionne, et une alternative à/V sur la ligne de commande est: SETLOCAL ENABLEDELAYEDEXPANSION –